题解 | #合并表记录#为什么比代码看起来少的方案要快
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.Set; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String num = in.nextLine(); int id = Integer.parseInt(num); Map<String,Long> mp = new HashMap<>(); while(id >0){ String kv = in.nextLine(); id--; String[] sa = kv.split(" "); long i = Integer.parseInt(sa[1]); if (mp.containsKey(sa[0])){ Long old = mp.get(sa[0]); mp.put(sa[0],old + i); }else { mp.put(sa[0],i); } } Set<Map.Entry<String, Long>> entries = mp.entrySet(); List<Map.Entry<String, Long>> entries1 = new ArrayList<>(entries); Collections.sort(entries1, new Comparator<Map.Entry<String, Long>>() { @Override public int compare(Map.Entry<String, Long> o1, Map.Entry<String, Long> o2) { return Integer.parseInt(o1.getKey()) - Integer.parseInt(o2.getKey()); } }); entries1.forEach(e -> System.out.println(e.getKey()+" "+e.getValue())); } }