Как получить уникальные значения с частотой из спискав Java? - PullRequest
1 голос
/ 11 октября 2019

Я хочу получить уникальные значения из List<String[]> и сохранить их в новом списке (или HashMap<String, Integer>, где String - это уникальное значение, а Integer - его число вхождений в List<String[]>. Какя могу извлечь уникальные значения?

Ответы [ 2 ]

3 голосов
/ 11 октября 2019

Вы можете использовать Collectors.groupingBy

Map<String, Long> map = abc.stream()
                           .flatMap(Arrays::stream)
                           .collect(Collectors.groupingBy(Function.identity(),
                                       Collectors.counting()));
0 голосов
/ 11 октября 2019

Если вы используете Java 8 или выше, это довольно просто. (Небольшая коррекция с использованием другого ответа)

List<String[]> abc = new ArrayList<>();
String[] string1 = {"123", "567"};
String[] string2 = {"123", "456"};
abc.add(string1);
abc.add(string2);

List<String> newList = abc.stream()
        .flatMap(Arrays::stream)
        .distinct()
        .collect(Collectors.toList());

Map<String, Long> hashMap = abc.stream()
            .flatMap(Arrays::stream)
            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...