用Java

时间:2017-07-08 04:01:45

标签: java sorting object arraylist

我有一个包含int值,String和double的对象。该对象的实例存储在ArrayList中。我想现在打印该对象,但我想首先按String值对ArrayList进行排序。我很难通过类似选择的方式概念化我是如何做到这一点的。任何帮助将不胜感激!

这是我认为你想做的事情,但这似乎不起作用。

public static void sSortStrings(ArrayList<Student> list) { //Selection sort
     int count1;
     int count2;
     int largest;
     String temp;
     for (count1 = 0; count1 < list.size() - 1; count1++) {
      largest = 0;
      for (count2 = largest + 1; count2 < list.size() - count1; count2++) {
       if (list[largest].compareTo(list[count2]) < 0) {
        largest = count2;
       }
      }
      temp = list[list.size() - 1 - count1];
      list[list.size() - 1 - count1] = list[largest];
      list[largest] = temp;
     }
    }

只是为了扔进去,我的教授已将其包含在源代码中,但我不确定是否应该调用它而不是比较方法

public boolean nameComesBefore(Student other) {
    return name.compareToIgnoreCase(other.name) < 0;
}

1 个答案:

答案 0 :(得分:0)

假设Student类具有String属性的getter。 然后,您需要做的就是对list.sort(Comparator.comparing(Student::getName))

进行排序

这将按学生的姓名对给定列表进行排序。 有关更多选项,请检查List.sort()Comparator的javadoc。