간단한 반복을 위해 새 Stream API를 사용하면 어떤 이점이 있습니까? 스트림 API없이간단한 반복을 위해 Stream API를 사용해야하나요?
:
for (Map.Entry<String, String> entry : map.entrySet()) {
doSomething(entry);
}
스트림 API를 사용하여 :
map.entrySet().stream().forEach((entry) -> {
doSomething(entry);
});
길이와 코드의 가독성은 거의 동일하다. 중요한 차이 (예 : 실적)가 있습니까? (당신은 단지 대형 컬렉션 혜택을 볼 수 있지만)
. 따라서 유스 케이스 자체만으로는 좋은 예가 아닙니다. 그러나'map.forEach' 메소드 자체를 사용하려고한다면, 람다를 사용할 때 어떤 점이 있지만 그때 다시는 스트림을 사용하지 않을 것입니다. – skiwi
동일 항목은 entrySet에 적용됩니다. 스트림이 필요없이'map.entrySet(). forEach (...) '라고 말할 수있다. 단일 메소드 호출의 경우'map.entrySet(). forEach (context :: doSomething); '형식이 람다 표현식보다 바람직합니다. * 실제로는 * 더 짧고 읽기 쉽기 때문입니다. 그래서 만약 당신이 * 기존의 * 메소드'doSomething'을 하나의 엔트리 인스턴스 나 key와 value를 매치하는 두 개의 매개 변수를 가지고 있다면, forEach (...)를 사용하는 것이 중요합니다. – Holger
또한이 방법으로 작성하더라도 두 번째 예제에서는 대괄호가 필요하지 않습니다. 나는 그것이 더 읽기 쉽다는 것을 생각한다 ... – Veluria