我有三个对象类,分别称为Size1Size2Size3

所有Size类都有不同的值(所有Values是String):


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;
}

最佳答案

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

private Set<Size> getSortedSizes(List<Size> allSizes) {
    Set<Size> sorted = new TreeSet<>(sortedArray);
    return sorted;
}


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

10-05 19:28