合并N个有序数组: public static List<Integer> mergeNArrays(int n, List<List<Integer>> list) { List<Integer> res = new ArrayList<>(); // 数组idx,值idx,值 PriorityQueue<int []> pq = new PriorityQueue<>((a, b) -> a[2] - b[2]); for (int i = 0; i < n; i++) { if (!list.get(i).isEmpty()) { pq.offer(new int[]{i, 0, list.get(i).get(0)}); } } while (!pq.isEmpty()) { int []smallest = pq.poll(); int arrayIdx = smallest[0]; int idx = smallest[1]; res.add(smallest[2]); if (idx < list.get(arrayIdx).size() - 1) { idx++; pq.offer(new int[]{arrayIdx, idx, list.get(arrayIdx).get(idx)}); } } return res; }