我有三个对象类,分别称为Size1
,Size2
,Size3
所有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)