Как отсортировать список, содержащий список целых чисел по сумме их элементов - PullRequest
0 голосов
/ 20 июня 2019

Я уже создал список, содержащий список целых чисел, и я хочу отсортировать этот список списков по сумме его элементов, но на самом деле я понятия не имею, как я могу это сделать; /

public static void main(String[] args) {
    List<List<Integer>> listList = Arrays.asList(
            Arrays.asList(1, 2, 3),
            Arrays.asList(5, 4, 3),
            Arrays.asList(27, 4, 33),
            Arrays.asList(27, 41, 33)
            );

    List<Integer> sumList = listList.stream()
            .sorted((list1, list2) -> {
                int sumlistCompare = Integer.sum()

            })

Ответы [ 2 ]

0 голосов
/ 20 июня 2019
List<List<Integer>> sortedListOfLists = listList.stream()
                .sorted((list1, list2) -> {
                    int list1Sum = list1.stream().mapToInt(Integer::intValue).sum();
                    int list2Sum = list2.stream().mapToInt(Integer::intValue).sum();
                    return list1Sum - list2Sum;
                }).collect(Collectors.toList());
0 голосов
/ 20 июня 2019

Вы можете вычислить сумму списков и сравнить их при сортировке как:

private int sumOfList(List<Integer> list) {
    return list.stream().mapToInt(i -> i).sum();
}

List<List<Integer>> sumListSort = listList.stream()
        .sorted(Comparator.comparingInt(SampleClass::sumOfList))
        .collect(Collectors.toList());
...