나는 JavaOne video By Venkat Subramanian about lambdas을보고있었습니다. 이 방법keySet 대신 groupingBy에 대한 엔트리 세트를 스트리밍
Map<String, Integer> scores = new HashMap<>();
scores.put("Jack", 12);
scores.put("Jill", 15);
scores.put("Tom", 11);
scores.put("Darla", 15);
scores.put("Nick", 15);
scores.put("Nancy", 11);
System.out.println(groupByScores(scores));
:
그는이 같은 예를했다public static Map<Integer, List<String>> groupByScores(Map<String, Integer> scores) {
return scores.keySet().stream().collect(Collectors.groupingBy(scores::get));
}
이 본질적지도를 호출의 keySet
반복 것이다에 대해 조금 귀찮은의 한 가지. 각 키에 대해 get (key). 하지만 반 구체 코드 인 반 패턴입니다.
"peopleByAge"지도를 생성하는 동일한 결과를 얻을 수 있지만 대신에 keySet
을 반복하면 어떻게됩니까? 단단한 부분은 분명히 과거의 모든 것입니다. stream()
.
하지만 map.get (key) O (1) 연산이 아닙니다. – Solace
@ Solace 그러나 그때조차도, 해시 계산과 더 많은 구현 특정 항목이 있어야합니다. 나는 entrySet 기능이 있다는 것을 고려하면 꽤 불필요하다고 느낀다. – Izruo
@ David : 비디오에 연결할 수 있습니까? 그렇지 않으면 관련성이 없습니다. – Borodin