【发布时间】:2017-01-03 07:01:45
【问题描述】:
我在TreeSet<MyObject> 中有以下对象:
public class MyObject implements Comparable<MyObject> {
private Long id;
private String Name;
public void setId(Long id) {
this.id = id;
}
}
我想搜索此TreeSet 中是否存在id = 5 的元素。我该怎么做?
【问题讨论】:
-
您的对象彼此之间不是
Comparable,因此您的TreeSet必须使用Comparator,而您尚未提供。您如何才能最好地完成您的要求取决于Comparator定义的顺序。 -
您有
TreeMap还是TreeSet?您的标题和帖子有冲突。 -
您不必搜索。所呈现的类的实例没有
id为5,因为该字段是private,它不是由类的(默认)构造函数设置的,也没有修改它的方法。每个实例都有id == 0。 -
编辑后,现在有一种方法可以让实例的
id为5,但仍然无法检查任何实例的id。此外,您的代码现在无法编译,因为类MyObject不是abstract,但不提供Comparable.compareTo(MyObject)的实现。该方法的细节很重要! -
@JohnBollinger 感谢您的澄清。我已经有一个 compareTo 方法,但我想创建另一个。所以我认为您所说的 Comparator 可以解决问题。
标签: java search collections treeset