合并表记录

合并表记录

题目描述

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

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


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

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

输出例子:
      0 3
      1 2
      3 4

Java实现:

	private static void fun() {
		Scanner sc = new Scanner(System.in);
		int n = Integer.parseInt(sc.nextLine());
		SortedMap<Integer, Integer> map = new TreeMap<Integer, Integer>();
		List<String> list = new ArrayList<String>();
		for(int i = 0; i < n; i++){
				String line = sc.nextLine();
				list.add(line);
		}
		for(String s : list){
			String[] str = s.split("\\s");
			if(map.containsKey(Integer.parseInt(str[0]))){
				int sum = 0;
				sum = map.get(Integer.parseInt(str[0])) + Integer.parseInt(str[1]);
				map.put(Integer.parseInt(str[0]), sum);
			}else{
				map.put(Integer.parseInt(str[0]), Integer.parseInt(str[1]));
			}
		}
		
		Set<Entry<Integer, Integer>> set = map.entrySet();
		for(Entry<Integer, Integer> entry : set){
			System.out.println(entry.getKey() + " " + entry.getValue());
		}
		
	}

猜你喜欢

转载自injavawetrust.iteye.com/blog/2315213
今日推荐