Tag: 排序

避免jvm热身

如果我正在设计排序算法测试,我可以这样做以避免JVM热身吗? 谢谢! double count = 0; double start, end; for(int r = 0; r < warmup; r++) { // do test } for(int t = 0; t < runs; t++){ start = System.nanoTime(); // do test end = System.nanoTime(); count += start – end; } double avg = count/avg

Java – 选择排序算法

我对选择排序有一些疑问。我有点困惑。 int [] arr = {5,4,3,2,1}; // This is my array int min = 0; for(int i = 0;i<arr.length;i++) { //Assume first element is min min = i;//Selection sort algorithm says that find the minimum in the // array, but first element is not minimum.What's point here? for(int j = i + 1;j<arr.length;j++) { int […]

使用Java中的stream.sorted()对列表进行排序

我有兴趣从流中排序列表。 这是我正在使用的代码: list.stream() .sorted((o1, o2)->o1.getItem().getValue().compareTo(o2.getItem().getValue())) .collect(Collectors.toList()); 我错过了什么吗? 该列表没有排序。 它应该根据具有最低值的项目对列表进行排序。 for (int i = 0; i < list.size(); i++) { System.out.println("list " + (i+1)); print(list, i); } 和打印方法: public static void print(List list, int i) { System.out.println(list.get(i).getItem().getValue()); }

可以使用什么函数对Vector进行排序?

我无法在java API中找到矢量的任何排序函数。 Collections.sort仅适用于List而不适用于Vector 。 我不想编写自己的排序函数,因为我认为java应该实现它。 我正在寻找类似的东西: class ClassName implements Comparator .. ClassName cn = ..; sort(cn);

Java 8 Comparator nullsFirst naturalOrder困惑

这可能是一个简单的问题,但我想清楚地理解它…… 我有这样的代码: public final class Persona { private final int id; private final String name public Persona(final int id,final String name) { this.id = id; this.name = name; } public int getId(){return id;} public String getName(){return name;} @Override public String toString(){return “Persona{” + “id=” + id + “, name=” + name+’}’;} } 我正在测试这段代码: import static […]

为什么Java Collections Framework提供了两种不同的排序方式?

如果我有一个我想要排序的元素列表,Java提供了两种方法来解决这个问题。 例如,假设我有一个Movie对象列表,我想按标题对它们进行排序。 我可以这样做的一种方法是调用静态java.util.Collections.sort()方法的单参数版本,并将我的电影列表作为单个参数。 所以我会调用Collections.sort(myMovieList)。 为了使其工作,必须声明Movie类以实现java.lang.Comparable接口,并且必须在此类中实现所需的方法compareTo()。 另一种排序方法是使用影片列表和java.util.Comparator对象作为参数调用静态java.util.Collections.sort()方法的双参数版本。 我会调用Collections.sort(myMovieList,titleComparator)。 在这种情况下,Movie类不会实现Comparable接口。 相反,在构建和维护影片列表本身的主类中,我将创建一个实现java.util.Comparator接口的内部类,并实现一个必需的方法compare()。 然后我将创建此类的实例并调用sort()的双参数版本。 第二种方法的好处是您可以创建无限数量的这些内部类比较器,因此您可以以不同的方式对对象列表进行排序。 在上面的示例中,您可以让另一个Comparator按照制作电影的年份进行排序。 我的问题是,为什么麻烦学习两种方式在Java中进行排序,当Collections.sort()的双参数版本执行第一个单参数版本所做的所有事情时,还有一个额外的好处就是能够对列表的元素进行排序根据几个不同的标准? 在编码时必须记住这一点。 你有一个基本的机制来排序Java中的列表来了解。

Java排序:按属性排序对象数组,不允许对象使用Comparable

我有一个类,包含一个Book对象的数组,我需要根据Book的属性(Title或PageNumber)对数组进行排序。 问题是我不允许将Comparable类与Book一起使用。 您如何推荐我在图书馆中排列图书? 写我自己的那种? 或者有更简单的方法吗? 如果您需要代码片段,请询问!

如何按升序对文件名进行排序?

我在一个文件夹中有一组文件,所有文件都以类似的名字开头,除了一个。 这是一个例子: Coordinate.txt Spectrum_1.txt Spectrum_2.txt Spectrum_3.txt . . . Spectrum_11235 我能够列出指定文件夹中的所有文件,但列表不是频谱号的升序。 示例:执行程序时,我得到以下结果: Spectrum_999.txt Spectrum_9990.txt Spectrum_9991.txt Spectrum_9992.txt Spectrum_9993.txt Spectrum_9994.txt Spectrum_9995.txt Spectrum_9996.txt Spectrum_9997.txt Spectrum_9998.txt Spectrum_9999.txt 但这个顺序不正确。 Spectrum_999.txt之后应该有Spectrum_1000.txt文件。 有人可以帮忙吗? 这是代码: import java.io.*; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class FileInput { public void userInput() { Scanner scanner = new Scanner( System.in ); System.out.println(“Enter the file path: “); […]

什么是Java的排序算法

java如何在内部对数据类型进行排序?为什么? 如果能够提到具体的算法,那就太好了

使用Arrays.sort()对并行数组进行排序

是否可以使用Arrays.sort()对数组进行Arrays.sort() ,然后使另一个相关的数组与排序的数组相同,例如: String arrNames[] = new String[5]; String arrCellNo[] = new String[arrNames.length]; String arrNamesSorted[] = new String[arrNames.length]; System.arraycopy(arrNames, 0, arrNamesSorted, 0, arrNames.length); Arrays.sort(arrNamesSorted); 从这一点开始,我想做的是对CellNo数组进行排序,这样如果“person”有一个cellNo“x”,那么在对数组arrNames进行排序后,他将拥有相同的“cellNo”“x”