에 entrySet와 작업을 계속합니다. 그리고 결과를 처리하십시오 (나는 그것이 entrySet이어야한다고 생각합니다) ... entrySet의 순서 또한 중요합니다. 그래서 나는 그 배열은 내가 다음 해결책을 발견자바 8 스트림. 의 LinkedHashMap에 배열을 변환하고 단일 스트림
Map<String, Integer> map = new LinkedHashMap<>();
for(String word : words) {
Integer count = map.get(word);
count = (count == null) ? 1: ++count;
map.put(word, count);
}
...의 LinkedHashMap로 변환해야하지만 순서는 존중되지 않고, 가정합니다. 그리고 (단,지도 또는 flatMap 포함) 수집 작업없이 스트리밍이 가능한 사용은?
Map<String, Long> collect =
wordsList.stream().collect(groupingBy(Function.identity(), counting()));
감사합니다.
왜이 groupingBy 수집기가의 LinkedHashMap를 작성해야한다고 생각합니까? 그룹별로 다른 수집기가 없지만 작성할 맵의 종류를 지정할 수 있습니까? Collectors의 javadoc을 읽었습니까? –
@JBnizet, 내가 컬렉터 내 작업에 대해 잘 보이는 groupingBy을 이해하지만이의 LinkedHashMap을 생성하지 않는 한 ... 난 그냥 ... 주문 을 유지하는 방법을 요구하고 있지만, 새로운 변환 항목에 사용할 같은 흐름을 계속하는 방법 ... –
나는 그것을 이해합니다. 내 요점은 javadoc을 방금 읽는다면 스스로 찾을 수 있다는 것이다. 독서 문서는 자율적이고 생산적인 프로그래머가되는 열쇠입니다. –