Tag: 排序

Java流排序2变量升序/取消发送

我想排序seq1升序和seq2降序所以我这样做: list = list.stream().sorted(comparing(AClass::getSeq1).thenComparing( AClass::getSeq2).reversed()).collect(toList()); 但结果出来了,因为seq1和seq2都按降序排序。 我可以这样做以使seq1升序和seq2降序: sorted(comparing(AClass::getSeq1) .reversed().thenComparing(AClass::getSeq2).reversed() 这是真正的正确方法吗?

Java的Collections.sort(列表,比较器)的排序顺序是什么? 从小到大还是从大到小?

显然,它没有记录,或者我错过了它。 这是文档的链接,下面是文本的图像: 编辑 (17/5):我认为太多人把这个问题混淆为比较问题。 它不是。 比较器比较2个元素。 根据那个比较,列表排序。 怎么样? 升序还是降序? 我将进一步细化/简化问题:如果比较器确定元素A小于元素B. 在排序列表中 ,元素A是否位于比元素B小的索引处?

按字母顺序排列对象的ArrayList

我必须创建一个方法,根据电子邮件按字母顺序对对象的ArrayList进行排序,然后打印排序的数组。 我正在排序它的部分。 我研究了它并尝试使用Collections.sort(vehiclearray); 但这对我不起作用。 我是因为我需要一种称为比较器的东西,但却无法弄清楚它是如何工作的。 我是否必须使用那些或者可以像冒泡排序或插入排序工作这样的东西? 这是我到目前为止的代码: public static void printallsort(ArrayList vehiclearray){ ArrayList vehiclearraysort = new ArrayList(); vehiclearraysort.addAll(vehiclearray); //Sort for(int i = 0; i vehiclearray.get(i+1).getEmail()) //Printing for(i = 0; i < vehiclearraysort.size(); i++) System.out.println( vehiclearraysort.get(i).toString() + "\n"); }

如何在java中按日期对目录中的文件进行排序?

我有一个方法从位于目录中的文件中读取内容。 但由于function原因,有必要从最旧的文件开始(由属性lastmodified指示)并以最新文件结束。 这是我打开和读取文件的代码: FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { return name.matches(“access_log.*”); } }; File folder = new File(“/home/myfiles”); File[] listOfFiles = folder.listFiles(filter); for (int i = 0; i < listOfFiles.length; i++) { String sFileName = listOfFiles[i].getName(); File accessLogFile = new File(aLog.getPath(), sFileName); long time=accessLogFile.lastModified(); // do something with […]

如何排序2D数组?

我需要帮助排序2D数组。 我有两行数组 [5, 3, 4, 1, 2] [10,20,30,40,50] 我需要将它排序为这样: [1, 2, 3, 4, 5] [40,50,20,30,10] 我知道如何使用冒泡排序,但我需要一些更快的算法,例如quicksort。 这是我的冒泡排序代码 for (int i = 0; i < length-1; i++) { for (int j = 0; j array[0][j+1]) { for (int k = 0; k < 2; k++) { int tmp = array[k][j]; array[k][j] = array[k][j+1]; array[k][j+1]=tmp; } } […]

数组排序输入

我使用数组排序输入重新获得帮助。 所以故事是下一个我正在制作一个代码来输入候选人的投票号码(其中有5个)并输出每个候选人的投票数量。 它也需要在输入-1时终止。 我已经计算了所有排序和交换function,并且实际输入代码存在问题。 我到目前为止所做的不对,但它可能会给你一个想法。 import java.util.*; public class VoteCount { public static void main(String[] args) { //create empty array int[] votes = new int[5]; //input data input(votes); } public static void input(int[] votes) { Scanner kybd = new Scanner(System.in); System.out.println(“Enter vote number of the candidate results: “); int votecount = kybd.nextInt(); while (votecount !=-1) […]

按预定义的自定义顺序排序字符串列表

我有这个项目,程序会询问用户应该运行多少次。 在每次运行期间,将创建一个列表并添加元素。 数组中的这些元素按字母顺序排序,但按以下顺序排序: q,w,e,r,t,y,u,i,o,p,l,k,j,h,g,f,d,s,a,z,x,c,v,b,n,m 我可以运行我的程序直到它接受输入,但我不知道接下来该做什么… 样本输入 2 3 what are you 2 sad set 样本输出 what you are set sad 这是我的代码: import java.util.*; public class WeirdWritings { public static void main(String[] args) { int data,word,ctr,i,ii; char[] rLetter = {‘Q’,’W’,’E’,’R’,’T’,’Y’,’U’,’I’,’O’,’P’,’L’,’K’,’J’,’H’,’G’,’F’,’D’,’S’,’A’,’Z’,’X’,’C’,’V’,’B’,’N’,’M’}; String entry; Scanner s = new Scanner(System.in); data=s.nextInt(); for (ctr=0;ctr<rLetter.length;ctr++) System.out.print(rLetter[ctr]); System.out.println(); for (ii = 0; […]

按长度排序,然后按字母顺序排序

下面你可以看到我的代码。 它从字典中读取单词并将与特定patern匹配的单词复制到test.txt。 我的问题是如何首先按照LENGTH对test.txt中的单词进行排序,以及何时按长度排序,然后按字母顺序排序。 例如。 我有: 汽车 老鼠 数 ABC 遗传资源 我需要的 ABC 汽车 遗传资源 老鼠 数 我的列表包含超过10000个单词。 package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.util.regex.Pattern; public class moja { public static void main(String[] args) { try { File file = new File(“SloveneLexicon.txt”); FileReader fileReader = […]

在quicksort应用程序中这些交换代码行的目的是什么?

我试图理解quicksort的实现或应用程序来找到第k个最小元素这是我想要了解的代码 public int quicksort(int a[], int start, int end, int k) { if(start k – 1){ return quicksort(a, start, pivot, k); } else { return quicksort(a, pivot + 1, end, k); } } else if(start == end) { return k==1?start:-1; } else { return -1; } } public int partition(int a[], int start, int end) […]

负空闲记忆

有时,此代码会打印一个负数,例如-64。 该值以KB为单位。 可能会发生什么? long memoriaInicial = Runtime.getRuntime().freeMemory() / 1024; sort(vector); System.Out.Println(memoriaInicial – Runtime.getRuntime().freeMemory()/1024);