2

我正在尝试在 TreeSet 中搜索具有特定 regNumber 的成员。然而, regNumber 与 TreeSet 中元素的顺序没有任何关系,这些元素按姓/名排序。

我现在尝试这样做的方式是遍历 TreeSet 中的所有元素并返回与我正在寻找的 regNumber 匹配的元素。这是好的做法还是效率太低?

public class Members implements Comperable <Members> {

private String firstName;
private String lastName;
private int regNumber;

}

PS TreeSet 中的元素必须保持按姓/名排序

4

1 回答 1

8

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

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

于 2012-05-01T20:48:02.917 回答