본문 바로가기

Java42

Stream 사용하기(3) - 최종 연산의 종류와 방법 드디어 stream 가공과 사용의 마지막 단계인 최종 연산에 왔습니다. 🥳🥳 stream 연산자 리스트표가 있어서 한 번 가져와 봤습니다. Intermediate으로 적혀 있는 연산자는 지난번 포스팅에서 다루었고 이번에는 Terminal(최종)로 적혀있는 연산자를 알아보겠습니다. 최종 연산자 중에 return type이 Optional인 연산자들은 null값이 나올 경우를 대비하여 예외처리를 해주어야 하는데요, 이 경우는 뒷쪽에서 다루도록 하겠습니다. 1. forEach() 먼저 forEach는 이름에서도 바로 각각의 요소들에 대한 작업이 이루어질 것이란게 느껴집니다. 값을 하나씩 출력하고 싶을 때 사용하면 됩니다. List list = new ArrayList(){{ add("A1"); add("A2".. 2022. 5. 21.
Stream 사용하기(2) - 중간 연산의 종류와 방법 앞선 포스팅에서 배열이나 collection에 담겨있는 데이터들을 가공하기 위한 사전 작업인 stream 생성 방법에 대해 자세히 알아보았습니다. 이제는 드디어 가공을 해 볼 차례입니다 도표를 보시면 연산 종류에 따라서 어떤 method들이 있는지 나와있는데요, 이번에 알아볼 중간 연산에 해당하는 methods는 filter(), map(), peek(), boxed()가 있네요! 여기에 sorted(), distinct() 까지 더해서 알아보겠습니다. 참고로 중간 연산은 Stream type을 반환합니다. 그래서 IDE에서 추천(?) 코드 중에 반환 타입이 Stream이나 IntStream등 Stream type인 경우는 최종 연산이 아닌 중간 연산 method라고 보시면 됩니다. 1. filter().. 2022. 5. 20.
Stream 사용하기(1) - stream 생성 안녕하세요! 지금까지 다량의 데이터를 한번에 관리할 수 있게 해주는 Collections에 대해서 쭉 알아보았는데요, 이번에는 Collections 타입의 자료들과 배열을 더욱 손쉽게 가공할 수 있도록 해주는 Stream에 대해 알아보도록 하겠습니다. Stream은 1. 대용량 데이터의 복잡한 가공처리를 할 때 2. 컬렉션 데이터의 복잡한 가공처리를 할 때 (대용량이 아니어도!) 3. multi threading이 아닌 진짜 병렬처리 를 할 때 유용하게 사용된다고 합니다. 먼저 알아두어야 할 사항은 Stream은 declarative programming(선언형 프로그래밍) 형태로, 지금까지 사용해오던 imperative programming(명령형 프로그래밍)과는 사뭇 다른 코드 형태를 보인다는 것입니.. 2022. 5. 20.
Generics(제네릭)의 의미와 사용법 Generics는 클래스나 인터페이스, method에서 type을 parameter로 지정하는 기법입니다. Method를 정의할 때 parameter를 넣는 경우가 있죠? public int calculator(int number) { ... } 위의 method는 int 형태의 값인 number를 parameter로 받고 있습니다. 반면 generics의 경우는 parameter로 값을 받는 것이 아니라 type을 받도록 하는 것입니다. 그래서 type parameter (parameterized types)라고 부르기도 합니다. 지금까지 공부한 내용 중에도 generics를 사용하는 친구가 이미 있었습니다 😯. 바로 ArrayList 입니다. ArrayList의 선언 방식은 primitive type.. 2022. 5. 18.
Final 키워드 알아보기 Static 키워드와 더불이 non-access modifier(비접근제어자) 중의 하나인 final 에 대해서 알아보겠습니다. Field, method, class에 사용할 수 있고, 이름처럼 더 이상의 변경이 일어나지 않기 원하는 멤버에 사용하면 되는 키워드 입니다. 그렇기 때문에 final method는 override가 불가능하고, final class는 extends가 불가능합니다! Field의 경우는 해당 field가 static이냐 non-static이냐에 따라 조금 성격이 다릅니다. 먼저 non-static final field의 경우를 살펴보겠습니다. non-static final인 경우에는 변수 initialize를 선언과 동시에 해도 되고 constructor 안에서 initializ.. 2022. 5. 16.
Collection framework - Map Collection framework에는 Collection interface와 Map interface가 있습니다. 이번에는 그 중 Map interface에 대해서 알아보겠습니다. Map interfaced의 가장 큰 특징은 key와 value의 쌍으로 되어있다는 것입니다. Swift의 dictionary와 유사하더라구요. Key & value pair는 entry라고 부릅니다. Swift에서와 마찬가지로 Java의 Map 역시 순서가 정리되지 않더라구요. 그래서 Array와는 다르게 index를 이용하지 않고 key를 사용합니다. 예를 들어 Map 안에 요소들을 찾을 때도 index 대신 key를 사용하면 됩니다. 그렇기 때문에 key는 중복된 key가 들어가면 안됩니다. key로 요소들을 관리하는.. 2022. 5. 15.
반응형