如何使用属性名称搜索java的对象列表

时间:2013-11-22 06:53:00

标签: java list search map arraylist

我有如下地图

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

但还有其他简单的方法吗?提前谢谢......

1 个答案:

答案 0 :(得分:3)

在Hash Map中搜索数据的复杂度为O(1),其中List为O(N)。

所以很遗憾,答案是你必须遍历列表。这就是为什么选择合适的数据结构非常重要的原因。