>source

를 선호해야합니다

List<?> tableList= list.stream()
                .map(row -> getRowModified(row, activeLimits))
                .collect(Collectors.toCollection(() -> new ArrayList<>(previouslyDefinedListSize)));

대신

List<?> tableList= list.stream()
                .map(row -> getRowModified(row, activeLimits))
                .collect(Collectors.toList());

성능 향상의 관점에서?

프로그램 속도가 크게 향상 되었습니까? 그렇다면 그렇습니다. 당신의 말을 경주하십시오.

Sweeper2021-04-21 01:43:14

이론적으로 예. 크기 추정치가 정확하다면 제공됩니다. 실제로, 성능에 관심이있는 경우, 자신을 스트리밍 기반 솔루션으로 제한해서는 안됩니다. 구식 루프는 현재 JVMS로 더 빨라질 수 있습니다.

Stephen C2021-04-21 01:43:14

스트림을 사용하는 것은 오버 헤드가 있습니다. 그 오버 헤드가 솔루션의 성능 차이를 초과하면 솔루션을 보여줍니다. 따라서 ArrayList의 생성을 마이크로 최적화 한 경우 스트림을 전혀 사용하지 않아야합니다. 이것은 조기 최적화의 좋은 예입니다.

Andreas2021-04-21 01:43:14

수집 (collectors.tocollection ((+>New ArrayList <>(is->new arraylistsize))만이 예상되는 크기와 b)를 알고있는 경우 합리적으로 작동합니다. 짐마자 그러나 해당 시나리오가 귀하의 우려 사항이있는 경우 list.stream () .map (...) .Tolist () (jdk 16) 또는 arrays.aslist (list.stream () .map (...) .toArray ())를 사용할 수 있습니다. 어느 경우에도 합리적으로 작동합니다.

Holger2021-04-21 01:43:14
  • 이전 겹치는 타임 스탬프가있는 데이터로 분할 된 쪽모이어 파일에 pptaquending
  • 다음 r : 물류 회귀 분석에서 예측 변수를 포함한 힘