我正在尝试在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对象的引用作为值。这样,您可以以使用更多空间为代价更有效地进行搜索。

07-24 21:50