我今天遇到了一个问题并尝试了但没有找到相关的解决方案。 问题是:
假设我们有一个包含城市名称和产品总数的二维数组。城市名称可以在列表中重复。
现在我们要做的是
- 计算在一个城市销售的产品数量,并将它们保存在另一个具有唯一城市名称和销售产品总数的二维数组中。
- 打印产品销量最高的第二个城市。
可供考虑的示例列表是:
private static String[][] arr = new String[][]{
{"New Delhi", "5000"},
{"Chennai", "4300"},
{"Goa", "2940"},
{"New Delhi", "2003"},
{"Kolkata", "8904"},
{"Kerala", "8972"},
{"New Delhi", "8922"},
{"Chennai", "8217"},
{"New Delhi", "2462"},
{"Kolkata", "5564"},
{"Kerala", "9934"},
{"New Delhi", "100"},
{"Kolkata", "892"},
{"Kerala", "9406"},
{"New Delhi", "2003"},
{"Chennai", "1049"}
};
注意:我已经用 map 界面试过这个问题。只寻找多维数组的解决方案
最佳答案
使用 HashMap
键是城市,值是总数
- 遍历数组
- 如果 key 存在,获取 key 的值并用新的增加计数 值(value)观
- 如果键不存在,则推送值。
基本思路是:
if(dataMap.get(city)==null){
dataMap.put(city,value);
}
else{
dataMap.put(city,value+dataMap.get(city));
}
您也可以对数组做同样的事情,但您需要声明一个新数组,您将根据相似的城市名称在其中添加计数。此场景的合适数据结构是 HashMap
关于Java 二维数组逻辑实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46976204/