Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对Web服务的结果进行排序和保留?_Java_Sorting_Arraylist_Comparable - Fatal编程技术网

Java 如何对Web服务的结果进行排序和保留?

Java 如何对Web服务的结果进行排序和保留?,java,sorting,arraylist,comparable,Java,Sorting,Arraylist,Comparable,我有一个类,其中有一个对象列表。我需要根据列表对象的浮点值对列表进行排序,但使用Array.sort方法后,以下代码不起作用。我打印了集合,但学生列表不会根据GPA进行排序 学校班级 public class School{ private List<Student> students; public School(){ this.students = new ArrayList(); } } 你可以这样分类: Collections.sort(this.

我有一个类,其中有一个对象列表。我需要根据列表对象的浮点值对列表进行排序,但使用Array.sort方法后,以下代码不起作用。我打印了集合,但学生列表不会根据GPA进行排序

学校班级

public class School{

  private List<Student> students;
  public School(){
     this.students = new ArrayList();
  }
}

你可以这样分类:

 Collections.sort(this.school.getStudents());
您还应在此处指定:

 this.students = new ArrayList<Student>();

你可以这样分类:

 Collections.sort(this.school.getStudents());
您还应在此处指定:

 this.students = new ArrayList<Student>();

问题是您正在对中间结果进行排序—一个不存储在任何位置的数组—并且您没有对它做任何操作

你现在主要做的是:

Object[] intermediate = this.school.getStudents().toArray();
Arrays.sort(intermediate);
//do nothing with intermediate

解决方案是使用更好的方法——或者存储中间数组,对其进行排序,然后将其还原到学生列表中更差的地方

问题是您正在对中间结果进行排序——一个未存储在任何位置的数组——而您没有对其进行任何操作

你现在主要做的是:

Object[] intermediate = this.school.getStudents().toArray();
Arrays.sort(intermediate);
//do nothing with intermediate

解决方案是使用更好的方法,或者存储中间数组,对其进行排序,然后将其恢复到学生列表中更差的位置

this.school.getStudents.toArray创建一个临时数组实例,array.sort对临时数组进行排序,而不是实际的ArrayList。您可以使用Collections.sorttthis.school.getStudents;相反,this.school.getStudents.toArray创建一个临时数组实例,array.sort对临时数组进行排序,而不是对实际的ArrayList进行排序。您可以使用Collections.sorttthis.school.getStudents;相反,您可以使用Collections.sorttthis.school.getStudents;或Collections.reversethis.school.getStudents;分别用于升序和降序。

您可以使用Collections.sortthis.school.getStudents;或Collections.reversethis.school.getStudents;分别用于升序和降序。

不起作用不是一个很好的问题描述。@qqilihq谢谢我添加了更多细节在重新阅读最后一行之后,问题是:toArray从列表中创建了一个新数组。只有数组被排序,而不是列表本身,这显然是您想要的。有关如何解决此问题,请参见下面的@donfoxx答案。无效不是一个很好的问题描述。@qqilihq谢谢我添加了更多详细信息在重新阅读最后一行后,问题是:toArray从列表中创建一个新数组。只有数组被排序,而不是列表本身,这显然是您想要的。关于如何解决这个问题,请参见下文@donfoxx的答案。