概述
List中将 Map 某key值相等的累加
public static void main(String[] args){
List<Map<String,Object>> list1 = new ArrayList<Map<String,Object>>();
Map<String,Object> map1 = new HashMap<String,Object>();
Map<String,Object> map2 = new HashMap<String,Object>();
Map<String,Object> map3 = new HashMap<String,Object>();
map1.put("张三", new Integer(92));
map2.put("李四", new Integer(85));
map3.put("张三", new Integer(90));
list1.add(map1);
list1.add(map2);
list1.add(map3);
Map<String,Object> mapAll = new HashMap<String,Object>();
for(Map<String,Object> map:list1){
for(Map.Entry<String, Object> entry:map.entrySet()){
String name = entry.getKey();
Object score = entry.getValue();
Object scoreAll = mapAll.get(entry.getKey());
if(scoreAll == null){
mapAll.put(name, score);
}else{
scoreAll = new Integer((((Integer)scoreAll).intValue() + ((Integer)score).intValue()));
mapAll.put(name, scoreAll);
}
}
}
for(Map.Entry<String, Object> entry:mapAll.entrySet()){
//如果需要将map再做list,在这里处理
System.out.println(entry.getKey() + "," + entry.getValue());
}
}
JSONArray转Map的三种实现方式
JSONArray数据
[
{
"flagType": 1,
"flagIcon": "1.jpg"
},
{
"flagType": 2,
"flagIcon": "2.jpg"
}
]
要转成目标数据
{
1:"1.jpg",
2:"2.jpg"
}
第一种
JSONArray jsonArray= new JSONArray();
//填充初始数据,此处过程省略
List<JSONObject> jsonObjectList = jsonArray.toJavaList(JSONObject.class);
Map<Integer, String> map = jsonObjectList.stream().filter(Objects::nonNull).collect(Collectors.toMap(item -> item.getInteger("flagType"), item -> item.getString("flagIcon")));
第二种
JSONArray jsonArray= new JSONArray();
//填充初始数据,此处过程省略
Map<Integer, String> map = jsonArray.stream().filter(Objects::nonNull)
.collect(Collectors.toMap(
object -> {
JSONObject item = (JSONObject) object;
return item.getInteger("flagType");
},
object -> {
JSONObject item = (JSONObject) object;
return item.getString("flagIcon");
}
));
第三种
Map<Integer, String> flagIconMap = new HashMap<>();
JSONArray jsonArray= new JSONArray();
//填充初始数据,此处过程省略
if (jsonArray != null && !jsonArray.isEmpty()) {
jsonArray.forEach(object -> {
if (object == null) {
return;
}
JSONObject jsonObject = (JSONObject) object;
if (jsonObject.getInteger("flagType") == null) {
return;
}
flagIconMap.put(jsonObject.getInteger("flagType"),jsonObject.getString("flagIcon"));
});
}
Java中Map的赋值、取值、删除值、替换值等操作
Map赋值
定义一个Map结构,往里面插入几条记录:
Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");
Map取值的五种方式
1、keySet二次取值
2、entrySet使用iterator遍历key和value
3、entrySet遍历key和value
4、通过Map.values()遍历所有的value,但不能遍历key
// 第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= " + key + " and value= " + map.get(key));
}
// 第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= "
+ entry.getValue());
}
// 第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= "
+ entry.getValue());
}
// 第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
// 第五种
System.out.println("直接通过key获取value");
String data = map.get("1");
System.out.println(data);
删除Map中的记录
1、map.remove(key)
2、map.remove(key,value)
/第一种方式
map.remove("1");
//第二种方式
map.remove("1","value1");
替换Map中的值
//第一种方式
map.replace("1","3");
//第二种方式
map.replace("1","value1","5");
查询Map中元素的个数
map.size()
判断Map中的元素是否为空
map.isEmpty()
判断Map中是否包含某某个指定key或value
map.containsKey("1")
map.containsValue("value1")
清除Map中的值
map.clear()
最后
以上就是洁净蜗牛为你收集整理的List中将 Map 某key值相等的累加的全部内容,希望文章能够帮你解决List中将 Map 某key值相等的累加所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复