Как найти максимальное значение вложенного массива строки, используя потоки - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть ArrayList в следующем формате

List<List<String>> ll = [["0", "a"], ["1", "b"], ["0", "c"], ["1", "d"]]

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

Используя потоки, как найти максимальное значение, заняв позицию в Integer.parseInt(ll.get(i).get(0))

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вы можете сделать это так,

int max = ll.stream().mapToInt(l -> Integer.parseInt(l.get(0))).max()
        .orElseThrow(IllegalArgumentException::new);
0 голосов
/ 26 сентября 2018

Во-первых, код, который вы разместили, даже не компилируется.Один из подходов получения наибольшего числа из вложенного списка.

List<List<String>> ll = Arrays.asList(Arrays.asList("10", "a"), Arrays.asList("21", "b"), Arrays.asList("10", "c"),
                Arrays.asList("11", "d"));

OptionalInt max = ll.stream().flatMap(l -> l.stream()).filter(str -> Character.isDigit(str.charAt(0)))
                .distinct().mapToInt(i -> Integer.parseInt(i)).max();

System.out.println(max.getAsInt());
...