当前位置: 首页 > 面试题库 >

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

堵昊焱
2023-03-14
问题内容

是否可以使用排序数组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数组进行排序,这样,如果“人”有一个cellNo“ x”,则在对数组arrNames进行排序后,他将具有相同的“
cellNo”“ x”


问题答案:

我会采用另一种方法:

  1. 创建一个新对象:
        public class Person {
    private name;
    private cellNo;

    // Implement getters and setters
    }
  1. 创建一个比较器:
        public MyComparator implements Comparator<Person> {
         public int compare(Person a, Person b) { 

               return a.getName().compareTo(b.getName());
         }
    }
  1. 打电话Array.sort(persons, new MyComparator())一对Person[] persons = ...阵列


 类似资料:
  • 问题内容: 我正在尝试使用来根据字符串的长度对字符串数组进行排序,但这会按字典顺序而不是按长度对字符串进行排序。这是我的代码: 排序后: 但是我想要的是 如何获得上述输出?请给出JDK 1.7和JDK1.8的答案。 问题答案: 如果您使用的是 JDK 1.8或更高版本,则可以使用 lambda表达式( 如 matt 答案)。但是,如果您使用的是 JDK 1.7或更早版本,请尝试编写一个 自定义Co

  • 我想使用功能 对一个int数组进行排序,但我不确定如何进行,这样我就可以确定它使用的是合并排序,而不是任何其他排序。 以下是Java文档:https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html 下面是我认为正确的函数实现,以便使用合并排序。 这是正确的吗?此外,我想指定一个索引,从哪里开始排序等 如何确保编写代码,使其使用合并

  • 对于这个项目,我得到了一个字符串数组和一个整数数组。int[1]是字符串[1]的排名。我需要使用mergesort按1到n的顺序对int数组进行排序,我在下面已经完成了这项工作。但是当int数组被移动时,我还需要切换字符串数组的位置,以便它们都被排序,如果这有意义的话?我不知道我的编码有什么问题,甚至我的想法是否真的有效,但我一直在stringSorted[k]=stringRight[j]上得到

  • 问题内容: 为什么我的打印输出数组未在以下代码中排序? 问题答案: 您需要两个循环来实现Bubble Sort。 样例代码:

  • 主要内容:算法总结及实现,优化算法在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如: 一个保存了班级学号的数组,排序后更容易分区好学生和坏学生; 一个保存了商品单价的数组,排序后更容易看出它们的性价比。 对数组元素进行排序的方法有很多种,比如冒泡排序、归并排序、选择排序、插入排序、快速排序等,其中最经典最需要掌握的是「冒泡排序」。 以从小到大排序为例,冒泡排序的整体

  • 部分排序可以通过std::Partial_sort完成。 部分排序方式 5 7 4 2 8 6 1 9 0 3 在对3个元素进行部分排序之后 0 1 2 7 8 6 5 9 4 3 http://en.cppreference.com/w/cpp/algorithm/partial_sort. 但当某些元素已经排序时,这不是最好的。 还有其他这样的函数可以这样做并利用部分排序数组。