在TreeSet中搜索特定元素

时间:2012-05-01 20:39:15

标签: java

我正在尝试在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中的元素必须按姓氏或名字排序

1 个答案:

答案 0 :(得分:8)

您按名称编制索引然后按regNumber搜索这一事实意味着从regNumber的角度来看,您有一个无序的项目集合。因此,你不能比对所有项目进行线性搜索做得更好。

如果你想要更好的东西,可以使用regNumber作为哈希表中的键(HashMap或其他),并将原始Member对象作为值引用。这样,您可以以更多空间为代价更有效地进行搜索。