[英]Finding element in LinkedList
如果我有一个Employee对象的LinkedList ...
每个员工都有一个姓名和一个ID字段。
我有linkedList通话清单...。
如果我想查看列表中是否包含员工,请执行以下操作:
list.contains(someEmployeeObject)
如果我想查看列表中是否包含基于员工ID的员工,该怎么办。
假设我有以下方法:
public boolean containsEmployeeByID(int id)
我怎么知道列表中是否包含带有参数id的雇员对象?
只需在列表上查找并寻找匹配项即可。 如果您经常执行此操作并频繁更改列表,请首先构建一个Map索引。
List<Employee> list = ...
for (Employee e : list)
if (e.getID() == id)
return true;
return false;
也就是说,将员工保存在LinkedList中? 多么奇怪的例子问题...
也许您应该使用键为ID且值为员工名称或员工对象的地图?
您可以重写equals()方法以基于Id进行比较,但是,这通常不是最佳实践。
另一个选择是创建一个HashMap,然后您可以按其ID检索员工。
for (Employee empl : list) {
map.put(empl.getId(), empl);
}
String idLookup = "1234";
Employee employee = map.get(idLookup);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.