我有如下图
Map<String,Integer> map = new HashMap<String, Integer>();
map.put("one",1);
map.put("two",2);
如果我想从地图上获取元素,我可以使用
map.get("one");
我有一个清单
List<TestVO> list = new ArrayList<TestVO>();
TestVO vo1 = new TestVO();
vo1.setId(1);
vo1.setName("one");
TestVO vo2 = new TestVO();
vo2.setId(2);
vo2.setName("two");
list.add(vo1);
list.add(vo2);
如果我要从名称为“ one”的列表中进行搜索,则需要对该列表进行迭代。是否有任何简单的方法可以找到此列表?
我发现了这个Searching in a ArrayList with custom objects for certain strings
但是还有其他简单的方法吗?
最佳答案
在哈希映射中搜索数据的复杂度为O(1),与List一样,复杂度为O(N)。
因此,不幸的是答案是您必须遍历列表。这就是为什么选择正确的数据结构如此重要的原因。