我正在尝试在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中的元素必须保持按姓/名的顺序
最佳答案
您先按名称建立索引,然后再按regNumber
搜索的事实意味着,从regNumber
的角度来看,您有无序的项目集合。因此,您不能比对所有项目进行线性搜索更好。
如果您想要更好的东西,可以将regNumber
用作哈希表(HashMap
或其他)中的键,并将对原始Member
对象的引用作为值。这样,您可以以使用更多空间为代价更有效地进行搜索。