我有三个对象类,名为Size1
、Size2
、Size3
所有大小类都有不同的值(所有值都是String):
我想排序一个列表,这样它就不会包含重复的值。
这就是我尝试过的:
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;
}
发布于 2017-10-30 13:57:37
您可以通过以下方式实现您的方法:
private Set<Size> getSortedSizes(List<Size> allSizes) {
Set<Size> sorted = new TreeSet<>(sortedArray);
return sorted;
}
但是您必须在Size类中实现两个方法,它们是: hashCode()和int compareTo(对象o),它们来自可比较的接口
发布于 2017-10-30 13:50:35
添加到TreeSet,而不是Arraylist
TreeSets是有序的,不能包含重复项。
https://stackoverflow.com/questions/47016860
复制相似问题