스트림? - 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓은 것 - 데이터 소스가 무엇이던 간에 같은 방식으로 다를 수 있게 해줌 - 코드의 재사용성이 높아짐 문자열 정렬, 출력 String[] strings = {"data1", "data3", "data2"}; List stringList = Arrays.asList(strings); Arrays.sort(strings); Collections.sort(stringList); for(String string : strings) { System.out.println(string); } for(String string : stringList) { System.out.println(string); } Stream strin..
람다식? - 메서드를 하나의 식으로 표현한 것 - 메서드의 이름과 반환값이 없어지므로, 익명함수라고도 함 람다식 작성법 반환타입 메서드이름 (매개변수) { //내용 } (매개변수) -> { //내용 } int add(int a, int b) { return a + b; } (int a, int b) -> { return a + b; } (a, b) -> a + b 함수형 인터페이스 Type t = (int a, int b) -> a + b; interface Function { int add(int a, int b); } Function function = new Function() { @Override public int add(int a, int b) { return a + b; } }; functi..
해시문제 베스트 앨범 코드 class Solution { public int[] solution(String[] genres, int[] plays) { int[] answer = {}; HashMap map = new HashMap(); for (int i = 0; i < genres.length; i++) { PlayData playData; playData = new PlayData(i); playData.put(i, plays[i]); map.merge(genres[i], playData, PlayData::merge); } Iterator iterator = PlayData.sortByTotalValue(map).iterator(); ArrayList list = new ArrayList(); ..
동적계획법 도둑질 문제 동적계획법 : 불필요한 계산을 줄이고 최적해를 찾는 방법 코드 class Solution { public int solution(int[] money) { int answer = 0; int dp[] = new int[money.length]; int dp2[] = new int[money.length]; dp[0] = money[0]; dp[1] = money[0]; dp2[0] = 0; dp2[1] = money[1]; for (int i = 2; i 첫번째 집의 돈) dp[1] (첫번째 집을 도둑질 했기 때문에 2번째 집을 도둑질 할 수 없어서 여전히 첫번째 집의 돈이 최적해) dp[i] = Math.max(dp[i-2] + money[i], dp[i-1]); dp2[i] =..
