Comments (1)
스트림 vs 컬렉션
-
스트림
- 데이터를 처리하는 API
- 일회성 , 한번 사용 후 재사용 불가
- 지연 평가
- 내부 반복
- parallerStream()을 통해 간단히 병렬 처리 가능
- 필터링, 매핑, 집계 등 데이터 처리 중심 함수 제공
- 순차 접근과 병렬 접근 가능
-
컬렉션
- 데이터를 저장하고 관리하는 자료구조
- 여러번 데이터를 반복하며 재사용 가능
- 즉시 평가
- 외부반복
- 순차처리
- 데이터 추가, 삭제 , 사이즈 확인, 포함 여부 확인
- 순차 접근
// 데이터 예시
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
// 컬렉션을 사용한 연산
List<String> filteredNames = new ArrayList<>();
for (String name : names) {
if (name.length() > 3) { // 필터링 조건
filteredNames.add(name.toUpperCase()); // 변환
}
}
System.out.println(filteredNames); // 출력: [ALICE, CHARLIE, DAVID]
// 스트림을 사용한 연산
List<String> streamResult = names.stream()
.filter(name -> name.length() > 3) // 필터링 조건
.map(String::toUpperCase) // 변환
.collect(Collectors.toList()); // 결과 수집
System.out.println(streamResult); // 출력: [ALICE, CHARLIE, DAVID]
내부반복 vs 외부반복
- 외부반복
- 개발자가 직접 반복문을 사용하여 컬렉션의 요소를 순회하는 방법.
- 순서와 제어는 개발자가 직접 담당
- 내부반복
- 자바의 Stream Api, 컬렉션 foreach 처럼 반복의 제어권을 라이브러리에 맡기고, 처리할 작업만 정의 하는 방법.
- 개발자는 처리할 작업만 정의
from studylog.
Related Issues (20)
- item18. 117-118p의 코드가 이해가 가지 않아 이슈로 올립니다.
- item18. 114페이지 메소드 호출과 달리 상속은 캡슐화를 깨뜨린다. HOT 1
- item18. 121p 래퍼 클래스는 하위클래스보다 견고하고 강력하다. HOT 1
- item19. 123p . 효율적인 하위 클래스를 큰 어려움 없이 만들수 있게 하려면 클래스의 내부 동작 과정 중간에 끼어들수 있는 훅(hook)을 잘 선별하여 protected 메서드 형태로 공개해야 할수도 있다 HOT 1
- item19. 128p 클래스의 동작을 유지하면서 재정의 가능 메서드를 사용하는 코드를 제거할 수 있는 기계적인 방법 HOT 1
- item20. 추상클래스보다는 인터페이스의 사용을 우선하라하였지만 어느 상황에서는 추상클래스가 더 유리한 이점을 가지게 될까요
- item24. 중첩 클래스 종류 HOT 3
- item22. 140p 바이너리 호환성을 위해 여전히 상수 인터페이스를 구현하고 있어야 한다. HOT 2
- item26. 비한정적 와일드 카드의 사용 용도 HOT 2
- item28. 제네릭타입이 런타임에 타입소거가 일어나는 이유에 대해서 HOT 1
- item31. PECS에서 extends와 super의 차이점에 대해서 HOT 1
- item.30 항등 함수를 담은 클래스를 사용하는 이유 HOT 2
- item.34 static final의 사용처 HOT 1
- item34.필요한 원소를 컴파일 타임에 다 알수있는 상수 집합이란? (219페이지) HOT 1
- item37. Enummap 버전은 언제나 식물의 생애주기당 하나씩의 중첩 맵을 만들지만, 스트림 버전에서는 해당 생애주기에 속하는 식물이 있을때만 만든다. (228p) HOT 1
- item41. 보통은 Set을 마커 인터페이스로 생각하지 않는다.(250p)
- item43. 메서드 참조 유형 (261p) HOT 1
- item46. forEach 연산은 스트림 계산 결과를 보고할 때만 이용해야한다. HOT 1
- item45. Stream 동작원리 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from studylog.