题解 | #合并表记录# 使用TreeMap
合并表记录
http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
思路
使用TreeMap,其中键值对,按照键的升序进行排列;
每有一组键值对,则根据键进行值的查找,然后将值进行叠加,并更新改建对应的新值;
打印结果;
import java.util.Map;
import java.util.TreeMap;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Map<Integer, Integer> map = new TreeMap<>();
while(sc.hasNext()) {
int n = sc.nextInt(); // 键值对的个数
for(int i = 0; i < n; i++) {
int k = sc.nextInt();
int v = sc.nextInt();
map.put(k, v + map.getOrDefault(k, 0));
}
}
for(Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
查看10道真题和解析