我有一个以下成员的对象:
class XNode {
// key
long magicNumber;
// metadata:
int x;
iny y;
int z;
double angle;
double tempreture;
}
我想使用订单列表(键是magicNumber)。
java中是否有已按订单方式实现添加/删除/更新的列表? (我不想为每个操作使用Collections.sort。)
答案 0 :(得分:3)
不允许重复
首先,在XNode
中有一个拼写错误。我相信
iny y;
应该是
int y;
Comparator<XNode> comp = new Comparator<XNode>() {
@Override
public int compare(XNode o1, XNode o2) {
return Long.valueOf(o1.magicNumber).compareTo(o2.magicNumber);
}
};
SortedSet<XNode> set = new TreeSet<>(comp);
答案 1 :(得分:2)
实施Comparable并按magicNumber
:
public int compare(XNode other) {
return Long.compare(this.magicNumber, other.magicNumber);
}
并使用TreeSet。
答案 2 :(得分:2)
没有排序列表,但您可以使用带有Comparator
的排序集:
Set<XNode> set = new TreeSet<>((a, b) -> Long.compare(a.magicNumber, b.magicNumber));
此比较器(lambda)区分magicNumber上的排序。