Java 在树集中搜索特定元素

Java 在树集中搜索特定元素,java,Java,我正在尝试在树集中搜索具有特定regNumber的成员。然而,regNumber与TreeSet中元素的顺序没有任何关系,这些元素是按姓氏/名排序的 我现在尝试的方法是遍历TreeSet中的所有元素,并返回与我要查找的regNumber匹配的元素。这是良好的做法还是效率太低 public class Members implements Comperable <Members> { private String firstName; private String lastName;

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

我现在尝试的方法是遍历TreeSet中的所有元素,并返回与我要查找的regNumber匹配的元素。这是良好的做法还是效率太低

public class Members implements Comperable <Members> {

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

}
public类成员实现compellable{
私有字符串名;
私有字符串lastName;
私人注册号码;
}

p.S树集中的元素必须保持按姓/名排序

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


如果您想要更好的内容,可以使用
regNumber
作为哈希表中的键(
HashMap
或其他任何内容),并将原始
成员的引用作为值。这样,您可以以使用更多空间为代价更高效地搜索。

这不是一个好的做法,但如果所有这些都是您的要求,您就不能做任何其他事情。您的问题进一步提出了您计划如何使用集合的问题。特别是,为什么要使用树集?如果您想找到具有特定regNumber的成员,为什么不将其放入映射中(假设regNumber是唯一的)?+1将regNumber用作哈希键。如果您需要用Reg或名称查找,请考虑使用双向映射(或两个单独的哈希图)。或者“代码> TeeMeP,如果有使用<代码>树目录< /COD>的理由。