此处的目标是将元素插入TreeSet
,其中排序由内部List
内的自定义对象完成。
public class CustomObject implements Comparable<CustomObject> {
List<Integer> innerObjectList = new ArrayList<>();
@Override
public boolean compareTo(CustomObject o) {
#compare natural ordering of elements in array.
}
}
这就是我目前正在做的事情,它有效,但我希望找到一种原生方式来做到这一点。
@Override
public int compareTo(@NotNull AisleMap o) {
if (o.aisles.size() > aisles.size())
return 1;
if (o.aisles.size() < aisles.size())
return -1;
for (int i = 0; i<aisles.size(); i++) {
int compare = o.aisles.get(i).compareTo(aisles.get(i));
if( compare != 0) {
return compare;
}
}
return 0;
}
我正在试图弄清楚如何做o.innerObjectList.compare(toInnerObjectList);
之类的事情但是我不完全确定如何做到这一点,以便TreeSet
正确地按顺序排列对象。有没有一种简单的方法来比较数组中元素的“自然”顺序?我想到的唯一方法是检查大小然后检查内容是否等于一个数组的一个索引大于另一个数组的相同索引。
例如:排序就像{1,2,5} -> {1,2,4} -> {1,2,3}