728x90
728x90
스트림이란 무엇인가? 스트림stream은 자바 8 API에 새로 추가된 기능이다. 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있다. 또한 스트림을 이용하면 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다(단순히 stream()을 paralleStream() 로 변경하면..). 스트림의 새로운 기능은 다음과 같은 다양한 이득을 준다는 사실을 기억하자. 선언형으로 코드를 구현할 수 있다. 즉, 선언형 코드와 동작 파라미터화를 활용하면 변하는 요구사항에 쉽게 대응할 수 있다. filter, sorted, map, collect 같은 여러 빌등 블록 연산을 연결해서 복잡한 데이터 처리 파이프라인을 만들 수 있다. 여러 연산을 파이프라인으로 연결해도 여전히 가독성과 명확성이..
Stream 성애자인 나는 오늘도 코딩 테스트 문제나 비즈니스 로직을 짜면서 Stream을 쓰고있다. 하지만 코딩 테스트를 풀면서 생긴 의문점이 있다. 바로 정렬을 해주는 sorted() 라는 함수인데 이 안의 파라미터로 Comparator 타입이 들어간다는 갓텔리제이의 TMI한 설명이 있다. 중요한건 이 문제를 이렇게도 풀 수 있지만, 아래와 같이 Music 클래스가 Comparable 인터페이스를 구현하고, compareTo 메서드를 재정의 함으로써도 해결할 수 있다. sorted 함수의 파라미터를 Music의 comparTo 메서드로 변경하였다. (조금 거슬리는 부분은 compareTo 메서드를 임의로 역순으로 정렬되게 설정하였다는 것이다) 여전히 파란불이 떳다! 둘다 돼네~ 하고 넘어가자고 하니,..
Q. 나누어 떨어지는 숫자 배열 접근 방법 : 나머지(%)의 개념만 잘 안다면 크게 어렵지 않은 문제라고 생각하였다. 풀이 방법 1) 흔한 방식으로 ArrayList를 사용 import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Solution { public static int[] solution(int[] arr, int divisor) { Arrays.sort(arr); //오름차순으로 정렬 List list = new ArrayList(); /** * arr의 배열의 각 원소가 divisor의 배수인 것만 list에 저장 */ for(int a : arr){ if(a % divisor == 0)..