json数据按照某一个相同键值进行分类成一个新的二维json数组

Posted 醒日是归时

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json数据按照某一个相同键值进行分类成一个新的二维json数组相关的知识,希望对你有一定的参考价值。

     formatTreeData(checkNodes)
       var map = ,
           targetData = [];
       checkNodes.forEach(item => 
         if (!map[item.groupKey]) 
           targetData.push(
             value: item.groupKey,
             label:item.groupName,
             children: [item]
           );
           map[item.groupKey] = item;
          else 
           for (var j = 0; j < targetData.length; j++) 
             var dj = targetData[j];
             if (dj.value === item.groupKey) 
               dj.children.push(item);
               break;
             
           
         
       )
       return targetData
     ,

 

数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

题目描述

数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。


输入描述:

先输入键值对的个数
然后输入成对的index和value值,以空格隔开



输出描述:

输出合并后的键值对(多行)


输入例子:
4
0 1
0 2
1 2
3 4

输出例子:
0 3
1 2
3 4


import java.util.Scanner;
import java.util.SortedMap;
import java.util.TreeMap;
 
public class Main {
    public static void main(String[] args) {
        Scanner str = new Scanner(System.in);
        SortedMap<Integer,Integer> map = new TreeMap<>();
        int n = Integer.parseInt(str.nextLine());
        for (int i = 0;i<n;i++){
            String[] mid = str.nextLine().split("\\s+");
            addPare(map,mid);
        }
        System.out.println(mapToString(map));
    }
     
    private static String mapToString(SortedMap<Integer, Integer> map) {
        // TODO Auto-generated method stub
        StringBuilder builder = new StringBuilder();
        for(SortedMap.Entry<Integer,Integer>e:map.entrySet()){
            builder.append(e.getKey()).append(" ").append(e.getValue()).append("\r");
        }
        return builder.toString();
    }
 
    private static void addPare(SortedMap<Integer, Integer> map, String[] mid) {
        // TODO Auto-generated method stub
        int key = Integer.parseInt(mid[0]);
        int value = Integer.parseInt(mid[1]);
        if(map.containsKey(key)){
            map.put(key, map.get(key) + value);
        }else{
            map.put(key, value);
        }
    }
}




以上是关于json数据按照某一个相同键值进行分类成一个新的二维json数组的主要内容,如果未能解决你的问题,请参考以下文章

把对象数据按照某一个属性进行分类

数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

Hadoop:Shuffle组件

MR原理

算法 合并表记录

华为机试:合并表记录