使用ArrayList或HashMap获得更好的速度
我需要对象A的“列表”或“地图”。…此列表将从另一个ArrayList中添加。当id
A的参数相等时,认为对象A等于另一个。
我的问题是我只想添加列表中不存在的对象。我不知道在这两种实现方式之间。使用ArrayList或HashMap
1. ArrayList:for (A a: source) {if (! (a in ArrayList)) addToArrayList();}
2. HashMap <id, A>
for (A a: source) {hasmap.put (a.id, a)}
哪一个会增加添加大量对象(超过1000个对象或更多对象)的速度更快?我的问题是否有更好的模式???
回答:
首先,我要大胆地指出这是 A List
处理元素的线性表示,并Map
处理键对值。
我的直觉是您正在尝试在a List
和a 之间进行选择Set
。
如果您只想输入 唯一的 元素,或者更简洁地说,如果您只关心唯一的值,那么Set
最好的选择是-也许HashSet
您不关心订购。
它为基本操作(例如添加,删除,包含和大小)提供了O(1)时间。
(足够有趣的是,HashSet
它由支持HashMap
,但提供的接口类似于ArrayList
。)
以上是 使用ArrayList或HashMap获得更好的速度 的全部内容, 来源链接: utcz.com/qa/411276.html