我正在尝试在TreeSet中搜索具有特定regNumber的Member。然而,regNumber与TreeSet中元素的顺序没有任何关系,这些元素按姓氏或名字排序。
我现在尝试这样做的方法是迭代TreeSet中的所有元素并返回与我正在寻找的regNumber匹配的元素。这是好的做法还是效率太低?
public class Members implements Comperable <Members> {
private String firstName;
private String lastName;
private int regNumber;
}
P.S TreeSet中的元素必须按姓氏或名字排序
答案 0 :(得分:8)
您按名称编制索引然后按regNumber
搜索这一事实意味着从regNumber
的角度来看,您有一个无序的项目集合。因此,你不能比对所有项目进行线性搜索做得更好。
如果你想要更好的东西,可以使用regNumber
作为哈希表中的键(HashMap
或其他),并将原始Member
对象作为值引用。这样,您可以以更多空间为代价更有效地进行搜索。