inflearn logo
강의

講義

知識共有

ザ・ジャバ、Java 8

ストリームについて

Stream 이 처리하는 데이터 소스 변경

407

katd6

投稿した質問数 8

3

안녕하세요 강의 정말 잘 듣고있습니다! 

Stream 속성중에 2번쨰, 원본 데이터 소스는 변경하지 않는다고 레퍼런스에 적혀있어서 학습용도로 혼자 공부하면서 테스트해보았는데, 

Functional in nature. An operation on a stream produces a result, but does not modify its source.

정말 원본 데이터가 안바뀌는지 궁금해서 해보았습니다. 

List<Food> foods = new ArrayList<>();
foods.add(new Food("Pizza",200));
foods.add(new Food("Bob",100));
foods.add(new Food("Chicken",400));

List<Food> result = foods.stream().map((food) -> {
food.setName("changed");
return food;
}).collect(Collectors.toList());

위 코드를 실행했을떄 collection내에 원본 객체들이 변경되지 않을거라고 생각했는데,  결과를 출력해보니 collection내 원본객체들이 모두 변경되어서 제가 뭔가 잘못 이해한 부분이 있는 것 같아서 질문드립니다  

java

回答 3

2

whiteship

리스트 안에 들어있는 원본 데이터인 Food 인스턴스는 안바꼈어요.

다만 setter를 사용해서 Food 인스턴스 안에 있는 name은 바뀌었죠.

 

 

0

8linkbv0493

저도 헷갈렸는데 foods 와 result 였네요. 질문과 답변 감사합니다!

0

katd6

넵 이해됐습니다 감사합니다!

CompletableFuture의 get 실행에 대해 궁금한 점이 있습니다

0

232

2

기본 인터페이스의 기본 제공 메서드 관련 질문 (왜 이걸 사용하는지)

0

517

2

static 과 metaspace 관련 질문있습니다.

0

708

0

Map의 가장 큰 특징이 key는 null이 아니다

0

2381

2

Optional 질문드립니다.

0

472

0

인텔리제이 콘솔창

0

581

0

Supplier를 쓰는 이유

0

1360

1

allOf()에서 컬렉션으로 반환하는 것을 설명할 때 코드

0

709

1

[참고] LTS주기

0

471

1

orElseThrow()

1

1087

2

findFirst함수

0

359

1

메서드 레퍼런스

1

478

1

primitive type 질문

0

303

1

FunctionalInterface 상속 관계 질문

0

293

1

함수형 인터페이스를 왜 사용하나요?

1

497

1

while문 세미콜론

0

432

1

flatMap Optional과 Stream에서의 차이점을 제가 잘 이해했는지 헷갈립니다!

0

408

1

람다식과 익명 클래스

0

321

1

steam api 예제 git 주소

3

785

1

thread.sleep질문

0

386

2

.orElse 매개변수 질문

0

265

1

isPresent( ) 와 null 질문

0

336

1

예제 코드 질문

2

290

1

코드 질문있습니다.

0

238

1