#java #list
#java #Список
Вопрос:
У меня есть следующий список строк
["a", "a", "b", "b", "b"]
Я хочу создавать списки, в которых элементы повторяются более одного раза, для предыдущего примера это будет
["a", "a"], ["b", "b", "b"]
Как я могу добиться этого на Java?
РЕДАКТИРОВАТЬ: элементы могут быть не упорядочены в основном списке.
Комментарии:
1. Что вы пробовали до сих пор? Сообщество здесь, чтобы помочь вам в вашем коде, если вы не предоставите написанный вами код, мы не сможем вам помочь.
2. Я даже не знаю, что попробовать, у меня нет никаких идей
3.
elmts.stream().collect(Collectors.groupingBy(Function.identity())).values()
вы можете развить идею4. Как насчет написания цикла, итерации по вашему списку ввода и создания результирующего объекта?
Ответ №1:
Вы можете сделать
list.stream().collect(Collectors.groupingBy(Function.identity())).values();
Комментарии:
1. значения возвращают коллекцию, которую можно использовать
.values().stream().collect(Collectors.toList());
для возврата списка
Ответ №2:
Это то, что вы хотите?
private void splitDuplicateList(String[] arr) {
Map<String, Integer> map = new HashMap<>();
for (String item : arr) {
if (!map.containsKey(item)) {
map.put(item, 1);
} else {
map.put(item, map.get(item) 1);
}
}
for (Map.Entry entry : map.entrySet()) {
List<String> list = new ArrayList<>();
for (int count = 0; count < (int) entry.getValue(); count ) {
list.add((String) entry.getKey());
}
System.out.println(list.toString());
}
}