我有如下地图
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
但还有其他简单的方法吗?提前谢谢......
答案 0 :(得分:3)
在Hash Map中搜索数据的复杂度为O(1),其中List为O(N)。
所以很遗憾,答案是你必须遍历列表。这就是为什么选择合适的数据结构非常重要的原因。