题解 | #字符串分隔#
合并表记录
http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
思路:
1.把输入的键值对保存在map集合中,在保存的过程对重复的key的value求和。
2.把map集合保存为list集合,使用Collections.sort对list进行升序排列。
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
HashMap<Integer,Integer> map=new HashMap<>();
// 注意 hasNext 和 hasNextLine 的区别
int quantity=in.nextInt();
while (in.hasNextInt()) { // 注意 while 处理多个 case
int key=in.nextInt();
int value=in.nextInt();
map.put(key,map.getOrDefault(key,0)+value);
}
ArrayList<Map.Entry<Integer,Integer>> list=new ArrayList<Map.Entry<Integer,Integer>>(map.entrySet());
Collections.sort(list,new Comparator<Map.Entry<Integer,Integer>>(){
@Override
public int compare(Map.Entry<Integer,Integer> o1,Map.Entry<Integer,Integer> o2){
return o1.getKey()-o2.getKey();
}
});
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getKey()+" "+list.get(i).getValue());
}
}
}
查看13道真题和解析