Java 排序列表-如何排序?

Java 排序列表-如何排序?,java,android,list,sorting,arraylist,Java,Android,List,Sorting,Arraylist,我有三个对象类称为Size1,Size2,Size3 所有大小类都有不同的值(所有值都是字符串): Size1.getValue()=“1” Size2.getValue()=“2” Size3.getValue()=“1” 我想对列表进行排序,这样它就不会包含重复的值 这就是我所尝试的: private List<Size> getSortedSizes(List<Size> allSizes){ List<Size> sortedArray =

我有三个对象类称为
Size1
Size2
Size3

所有大小类都有不同的值(所有值都是字符串):

  • Size1.getValue()=“1”
  • Size2.getValue()=“2”
  • Size3.getValue()=“1”
我想对列表进行排序,这样它就不会包含重复的值

这就是我所尝试的:

private List<Size> getSortedSizes(List<Size> allSizes){

  List<Size> sortedArray = new ArrayList<>();

  for (int i = 0; i < allSizes.size(); i++){
    Size size = allSizes.get(i);
    if (sortedArray.size() == 0){
      sortedArray.add(Size);
    } else {
      for (int a = 0; a < sortedArray.size(); a++) {
        if (!sortedArray.get(a).getValue().equals(Size.getValue())) {
          sortedArray.add(Size);
        }
      }
    }
  }
  return sortedArray;
}
私有列表getSortedSizes(列出所有大小){
List sortedArray=new ArrayList();
对于(int i=0;i
添加到树集,而不是数组列表


树集是有序的,不能包含重复项添加到树集,而不是Arraylist


树集是有序的,不能包含重复项

您可以通过以下方式实现您的方法:

private Set<Size> getSortedSizes(List<Size> allSizes) {
    Set<Size> sorted = new TreeSet<>(sortedArray);
    return sorted;
}
专用集getSortedSizes(列出所有大小){
设置已排序=新树集(SorterDarray);
返回排序;
}

但是您必须在Size类中实现两个方法,它们是:来自可比较接口的hashCode()和int compareTo(Object o)

您可以通过以下方式实现您的方法:

private Set<Size> getSortedSizes(List<Size> allSizes) {
    Set<Size> sorted = new TreeSet<>(sortedArray);
    return sorted;
}
专用集getSortedSizes(列出所有大小){
设置已排序=新树集(SorterDarray);
返回排序;
}

但是您必须在Size类中实现两个方法,它们是:hashCode()和来自可比较接口的int compareTo(对象o)

您想对列表进行排序还是从列表中删除所有重复项?这两个操作之间有很大的区别。删除所有重复项请提供一个完整的示例,我们可以自己编译和运行。演示如何创建列表并调用此方法。然后我建议使用集合。因为这就是集合的用途(不包含重复项)。但请注意,您需要Size类实现equals()和hashcode()方法,才能正确处理集合。是否要对列表进行排序或删除列表中的所有重复项?这两个操作之间有很大的区别。删除所有重复项请提供一个完整的示例,我们可以自己编译和运行。演示如何创建列表并调用此方法。然后我建议使用集合。因为这就是集合的用途(不包含重复项)。但请注意,您需要Size类实现equals()和hashcode()方法,才能正确处理集合。