[Java] Stream API를 공부하며

eunhye_·2022년 8월 17일
0

Java

목록 보기
8/10
post-thumbnail

java의 Stream API를 공부하며 느낀 공부해야 할 것들

- Lambda 식을 활용한 코드 사용법
- Collection Interface의 stream methods 사용법
- 위에서 플러스로  객체의 type에 따른 stream methods들의 적절한 활용법 

공부하며 느낀 점:
sql에서 data를 다루어 시각적 정보를 얻는 것 처럼 java라는 언어로 그 안에 있는 Collection을 다루는 것 같다.
java는 타입과 Collection의 구조..? 등 신경써야 할 것, 제한..등 수행하는 것이 더 어렵게 느껴진다.

구분한 것

  • filter(), forEach()와 map()의 기능적 차이
    - filter() : 말 그대로 필터 역활, (==, !=, >)를 사용하여 조건이나 한계점을 정할 때 사용. &&이나 | 사용 가능
    • forEach() : 여러 객체를 받았을때 한 개씩 받아와 동작을 실행 시킬 수 있다. for()과 비슷, 반환값이 없어도 된다. - void
    • map() : mapToInt() 등 비슷하면서 세부적으로 다른 메소드가 여럿 있다. forEach()와 비슷하지만 반환 값이 있어야 한다. 객체를 받아온 객체 안에 특정 변수로 변경할 때 유용하다.
      ex) peopleList.map(p -> p.getName()) : peopleList 안에 People을 받아 이름을 반환한다.

의문점

  • stream()쓰고 한것과 안 쓴것의 차이, 메소드마다 요구하는 것이 다르고, 반환되는 값의 차이를 정확히는 모르겠지만 map()과 collect() 등은 stream()을 필요시 한다.
  • collect()의 정확한 기능
  • collect() 안에서 groupingBy, joining 등 기능과 사용법
  • max(), min() 구하기 (어떤 상황에서는 비교 parameter를 요구하고 또는 orElse()로 넘어간다.)

좀 더 잘하고 싶은 것

  • 의문점들 확실히 알기
  • 코드를 한 줄로 구현하기 (그치만 먼저는 해결!!)
  • 중복이나 필요없는 코드 및 동작 삭제하기
  • 변수 대입 안하고 구하기

stream에 관련된 API 문서
https://docs.oracle.com/javase/8/docs/api/index.html
-> java.util.stream

0개의 댓글