작성
·
270
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내 원본객체들이 모두 변경되어서 제가 뭔가 잘못 이해한 부분이 있는 것 같아서 질문드립니다
답변 3
2
0
0