在链接列表中查找元素

时间:2009-05-02 03:42:53

标签: java search linked-list

如果我有一个Employee对象的LinkedList ...

每位员工都有一个名称和一个ID字段。

我有链接列表呼叫列表....

如果我想查看列表是否包含我所做的员工:

list.contains(someEmployeeObject)

如果我想查看该列表是否包含基于imployee ID的员工,那该怎么样..

假设我有以下方法:

public boolean containsEmployeeByID(int id)

如何知道列表是否包含带参数id?

的员工对象

3 个答案:

答案 0 :(得分:4)

只需查看列表并查找匹配项。如果经常这样做并且不经常更改列表,请首先构建Map索引。

List<Employee> list = ...
for (Employee e : list)
   if (e.getID() == id)
      return true;
return false;

那说,在LinkedList中保存员工?多么奇怪的例子......

答案 1 :(得分:1)

也许您应该使用一个地图,其中的密钥是ID,而值是员工姓名或员工对象?

答案 2 :(得分:1)

您可以覆盖您的equals()方法以根据Id进行比较,但这通常不是最佳做法。

另一个选择是创建一个HashMap,然后您可以通过他们的Id来检索您的员工。

for (Employee empl : list) {
    map.put(empl.getId(), empl);
}

String idLookup = "1234";

Employee employee = map.get(idLookup);