如何在java中添加和合并同一映射的值
嗨,我在添加地图的整数值和合并地图的字符串值时遇到问题。例如,我想做的是,我有以下代码:如何在java中添加和合并同一映射的值,java,spring,Java,Spring,嗨,我在添加地图的整数值和合并地图的字符串值时遇到问题。例如,我想做的是,我有以下代码: List<Object[]> results = customerRepository.findByAddress(); for(Object[] object : results) { Map<Object, Object> location = new LinkedHashMap<>(); location.put("Region"
List<Object[]> results = customerRepository.findByAddress();
for(Object[] object : results) {
Map<Object, Object> location = new LinkedHashMap<>();
location.put("Region", object[0]);
location.put("Tally", object[1]);
for(String obj : regionOne) {
if(object[0].equals(obj)) {
location.replace("Region", "Region I");
}
}
}
我想要的是加上Tally的值,所以2+2=4
并将Pasig和Taguig合并并替换为区域I
所以结果应该是
Region: Region I
Tally: 4
我已经查看了合并函数,但它似乎不是我想要的,或者我只是没有完全理解它。提前谢谢。如果您使用的是Java 8或更大版本,Map::ComputeiPresent可能对您的问题有用
顺便说一句,我认为在提问时最好将业务部分与代码分开。什么是
regionOne
?为什么要使用对象?@Thrary Wombat regionOne是一个数组,就像你需要使用字符串一样,不是ObjectsOkay但是你知道我该如何添加tally吗?哦,谢谢你的建议,我现在正在研究计算方法,在我测试它之后,我会回到这个位置。计算(“tally”,(k,oldVal)->(oldVal==null?0:oldVal+“+”+对象[1]);这会像预期的那样工作吗?location.compute(“Tally”,(k,oldVal)->(oldVal==null?0:oldVal+Integer.valueof(object[1]);你可能想要这个。谢谢它的工作,我写它就像这个位置。计算(“Tally”,(k,oldVal)->(oldVal==null?0:((BigInteger)oldVal)。添加((BigInteger)对象[1]);
Region: Region I
Tally: 4