关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
5年前关门了。
改进这个问题
我正在寻找一种有效的方法,将具有一些规则的对象添加到列表中。例如,我有一个对象
Car [int year, String brand, int cost]
想象一下我有一个包含以下值的列表:
[2011, "Renault", 100]
[2011, "Mazda", 120]
[2011, "Ferrari", 150]
[2011, "Mazda", 100]
[2011, "Ferrari", 130]
[2011, "Renault", 200]
规则:
如果我想要一辆车[2011,马自达,150],我会更换[2011,马自达,120],更新成本。
如果我想用car[2011,renault,120]添加一辆车,我想替换[2011,“mazda”,120]。
如果没有匹配的品牌,我想增加年和成本。
所以,我需要一种有效的方法来匹配一些属性,并用这个规则添加对象。
有人知道吗?
3条答案
按热度按时间dsekswqp1#
嗯,如果我没听错的话,你想潜入
List
s。他们很直截了当:要移除汽车:
有关JavaAPI列表的详细信息
8xiog9wr2#
使用Map存储键值对。关键可以是年份+车型的组合,价值可以只是成本或整车对象。
67up9zun3#
这是很难实现的琐碎。你可以留几张带钥匙的Map
[year, cost]
以及[year, model]
. 给出对应对象的列表索引作为map的值。每次添加一个对象时,都会选取两个属性,从中生成关键点,并检查它是否存在于Map中。如果是,则替换相应的对象,如果不是,则添加条目。
而暴力手段需要
O(n)
读一写—添加新条目,这种方法在命中的情况下减少到两读两写,在未命中的情况下减少到两读三写。