전체 글224 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. countAllCharacters 문자열을 입력받아 문자열의 각 letter를 key로 갖고 letter가 등장하는 횟수를 value로 갖는 HashMap 를 return 하는 문제. (입력받은 문자열이 빈 문자열인 경우에는 return null) 예시. "apple" 을 입력받았다면 {a = 1, p = 2, l = 1, e = 1} 을 반환 나의 풀이 또 다시 완전 탐색과 double for loop으로..ㅎㅎ 그래도 나름대로 중복된 key는 갖지 않는 Map의 특성을 이용했다는 점에서, 그 동안 사용해 보지 않은 새로운 방식을 하나 이용했다는 게 성장점인 것 같다. 물론 return type 자체가 HashMap인 것도 있지만! public HashMap countAllCharacter(String str) { //TODO.. if.. 2022. 5. 18. 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. Static 키워드 알아보기 안녕하세요! 오늘은 static 이라는 키워드에 대해서 알아보고자 합니다. 먼저 간략하게 특징을 정리해보자면, - 용도: 특정한 class에서 공통으로 사용하는 variables나 methods에 붙임. 메모리 관리를 위함. - 사용 위치: variables, methods, blocks, and nested classes - 특징: class의 instance 보다는 class 자체에 속함. 동일한 class의 instance들이 공유하는 constant variable 이나 method에 사용. 출처: https://www.geeksforgeeks.org/static-keyword-java/ 이렇게 정리될 수 있겠습니다. 그런데 이렇게만 보니 무슨 말인지 잘 모르겠더라구요 ㅎㅎ 제가 지금까지 이해한 .. 2022. 5. 12. [백준] 4673셀프넘버-Java 내 풀이 public class 셀프넘버 { public static void main(String[] args) { //전체 수 int[] wholeNum = new int[10000]; for(int i = 0; i < 10000; i++) { wholeNum[i] = (i + 1); } //d 수 int[] dNum = new int[10000]; for(int j = 0; j < 10000; j++) { dNum[j] = d(j); } //비교 for(int a = 0; a < 10000; a++) { int noDNum = 0; int count = 0; for(int b = 0; b < 10000; b++) { if(wholeNum[a] == dNum[b]) { count += 1; } } i.. 2022. 5. 11. Inner Class - Anonymous class(익명 클래스) 이번에는 Anonymous class에 대해서 알아보려고 합니다. 직역하면 익명 클래스인데요, 말 그대로 이름이 없는 클래스입니다. 지난번에 알아본 local class와 기능은 유사하지만 다만 이름이 없다는 특징이 있습니다. 따로 이름을 붙이지 않기 때문에 선언과 생성이 동시에 이루어지게 됩니다. 버튼에 쓰이는 이벤트 핸들러(event handler)에 주로 사용이 된다고 합니다. 애플리케이션을 보면 한 화면에 여러 가지 버튼이 있는데, 이전 페이지로 가기, 확인 버튼, 글 상단으로 가기 등 각 버튼이 수행하는 기능이 다릅니다. 그럴 때 기능마다 클래스 파일을 따로 만들기 보다는 익명 클래스를 사용해서 간편하게 기능을 구현하는 것입니다. 제가 수강하고 있는 udemy강의에서 활용한 예시로 한 번 살펴보.. 2022. 5. 10. 이전 1 ··· 16 17 18 19 20 21 22 ··· 25 다음 반응형