【发布时间】:2018-04-11 12:39:54
【问题描述】:
我有三个对象类,分别称为Size1、Size2、Size3
所有 Size 类都有不同的值(所有值都是字符串):
- Size1.getValue() = "1"
- Size2.getValue() = "2"
- Size3.getValue() = "1"
我想对 List 进行排序,使其不包含重复值。
这是我尝试过的:
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;
}
【问题讨论】:
-
您要对列表进行排序还是从列表中删除所有重复项?这两种操作有很大区别。
-
删除所有重复项
-
请提供一个完整的例子,我们可以自己编译运行。展示如何创建 List 并调用此方法。
-
那我推荐使用 Set。因为这就是 Sets 的用途(不包含重复项)。但请注意,您需要您的 Size 类实现 equals() 和 hashcode() 方法才能正确使用 Set。
标签: java android list sorting arraylist