본문 바로가기

전체 글213

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.
Inner class - local class 안녕하세요! 이번에는 nested class 중에 하나인 local class에 대해서 알아보겠습니다. Local class의 경우는 block 내부에 정의됩니다. Block이라고 하면 instance block*, static block*, constructor, method, for loop이나 if 문 block등이 있습니다. (*instance block과 static block은 다음에 한 번 자세히 알아보겠습니다.) 지역변수(local variable)처럼 정의되어 있는 block의 내부에서만 사용이 가능하여, 보통 선언 후에 바로 객체를 생성해서 사용하게 됩니다. 사용할 수 있는 범위가 정의되어 있는 block에만 한정되기 때문에 사용 빈도가 높지 않다고 합니다. 사용 방법 아래 코드를 보시.. 2022. 5. 9.
Inner class 알아보기 Inner class(내부 클래스)는 단어에서 알 수 있다시피 클래스나 인터페이스 내부에 선언된 클래스를 의미합니다. 정확히 구분하면 Java에는 크게 4가지 종류의 nested class가 있는데 (nested라고 하면 어떤 물체 안에 들어가 있는 형태를 이야기 합니다. 어찌보면 단어의 의미 자체는 inner랑 유사하죠) 바로 static nested class, non-static nested class, local class, anonymous class 입니다. 이 중에서 non static nested class가 inner class 입니다. Inner class는 outer class(외부 클래스) 안에 선언되어 있는 클래스 입니다. class OuterClass { class InnerCl.. 2022. 5. 9.
반응형