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()方法,才能正确处理集合。