我有两个数组列表:Percentlist
和Amountlist
,我要检查的是在百分比列表中检查相同的值,并添加各自的金额列表值(相同位置)。
例如: PercentList
AmountList:
我想要两个这样的结果: 唯一列表百分比
和AmountList的值相同(来自PercentList)
请帮助
答案 0 :(得分:0)
我认为您想使用这样的HashMap
。地图的键将是百分比,映射的值将是数量。
ArrayList<Integer> percentList = new ArrayList<>(Arrays.asList(20,30,40,30,20,30));
ArrayList<Integer> amountList = new ArrayList<>(Arrays.asList(50,60,100,70,120,90));
HashMap<Integer,Integer> map = new HashMap<>();
for(int i = 0; i < percentList.size();i++)
{
int percent = percentList.get(i);
int amount = amountList.get(i);
map.put(percent,(map.containsKey(percent) ? map.get(percent) : 0) + amount);
}
ArrayList<Integer> percentUniqueList = new ArrayList<>(map.keySet());
ArrayList<Integer> amountUniqueList = new ArrayList<>(map.values());
但是,从Map
获取键和值并不保留任何顺序,将其用作列表时要小心。我建议创建一个具有两个属性percent
和amount
的类,然后为该类创建一个列表,而不要使用两个单独的整数列表。每当您具有相同长度的多个数组,并且每个数组在相同索引处的元素对应于同一对象的不同属性时,您将很高兴制作一个具有多个属性的类的单个列表。