본문 바로가기

개발지/회고

[0814] 8월 2주 주간학습 회고 (8/7~8/10)

#열거형(Enum)

- 서로 연관된 상수(변하지 않는 값)들의 집합.

- 한정된 상수들의 데이터를 다르는 데 사용.

- switch문과 함께 사용.

enum Height { TALL, MEDIUM, SHORT } // 상수는 대문자로 작성, 각 상수는 자동으로 정수값 할당

public class EnumExample {
    public static void main(String[] args) {
        Height myHeight = Height.MEDIUM; // 열거형이름.상수명 을 통해 선언된 상수에 접근.
        System.out.println(myHeight); // 출력값: MEDIUM
        
        Height height = Height.SHORT;
        
        switch(Height) {
            case TALL:
                System.out.println("큰 키")
                break;
            case MEDIUM:
                System.out.println("중간 키")
                break;
            case Short:
                System.out.println("작은 키")
                break;
        } //출력값 작은 키
    }
}

- 열거형 메서드

메서드(매개변수) / 리턴 타입 설명
name() / String 열거 객체가 가지고 있는 문자열을 리턴.
리턴되는 문자열은 열거타입을 정의할 때 사용한 상수 이름과 동일.
ordinal() / int 열거 객체의 순번(0부터 시작)을 리턴
compareTo(비교값) / int 주어진 매개 값과 비교하여 순번 차이를 리턴
valueOf(String name) / 열거 타입 주어진 문자열의 열거 객체를 리턴
values() / 열거 배열 모든 열거 객체들을 배열로 리턴

 

#제네릭

- 클래스와 메서드의 타입을 일반화해 둔 것.

- 타입매개변수(타입파라미터)를 철자(T, K, V, E, N, R 등)으로 치환하여 선언.

- static이 붙은 변수와 메서드와는 사용할 수 없다.

- 타입매개변수에 치환될 타입으로 기본 타입 사용 불가능

- 타입매개변수에 상속받은 클래스를 타입으로 지정 가능.(제한된 제네릭 클래스)

- 제네릭 클래스에서 다형성 적용 가능(상속 가능)

 

#제네릭 메서드

- 클래스 내부 특정 메서드만 제너릭으로 선언된 것.

- 제네릭 메서드의 타입매개변수 선언은 반환타입 앞에서 이루어짐. (해당 메서드 내 선언된 타입매개변수 사용)

- 제네릭 메서드의 타입매개변수는 제네릭 클래스의 타입매개변수와 구별됨.

- 메서드 타입매개변수는 static메서드에서 사용가능.

 

#와일드카드

- 어떠한 타입으로든 대체될 수 있는 타입 파라미터.

- 기호 ?으로 사용

- extends와 super를 함께 사용한다.

- extends는 상한 제한, super는 하한 제한을 설정할 때 사용됨.

 

#예외 처리 클래스

- 프로그램의 에러 처리를 위한 클래스.

- 일반 예외 클래스(Exception)과 실행 예외 클래스(Runtime Exception)이 있음

- try-catch문으로 예외를  처리를 함.

- throws를 통해 예외 전가를 할 수 있음.

- throw으로 의도적으로 예외를 발생시킬 수 있음.

 

#컬렉션 프레임워크

- 여러 데이터의 집합인 컬렉션을 다르기 위한 메서드들의 집합.

Colletcion List LinkedList
Stack
Vector
ArrayList
Set HashSet
SortedSet
Map Hashtable TreeSet
HashMap  
SortedMap TreeMap

(1) List

▪ 순서 유지, 중복 저장 가능

ArrayList, Vector, Stack, LinkedList

(2) Set

▪ 순서 유지 X, 중복 저장 불가능

HashSet, TreeSet

(3) Map

▪ 키(key)와 값(value)으로 데이터를 저장

▪ 키는 값의 식별하기 위해 사용되어 중복 저장 X. 값은 중복 저장 가능

HashMap, HashTable, TreeMap, Properties

 

#List

- 객체를 일렬로 늘어놓은 구조.

- 인덱스로 객체를 검색, 추가, 삭제 가능

 

#ArrayList

- 인덱스로 겍체를 관리, 그러나 List와 달리 배열의 크기가 변할 수 있다.

- 데이터의 순서가 유지됨.

 

#LinkedList

- 데이터의 불연속적 존재. 

- 데이터의 연결이 링크로 되어 있어서, 데이터의 변경이 있을 때 링크가 재설정됨.

 

#ArrayList와 LinkedList의 비교

ArrayList LinkedList
순차적으로 데이터를 추가하거나 삭제할 때 유리 객체를 중간에 추가하거나 삭제할 때 유리
자료 검색 속도 빠름(인덱스로 접근) 자료 검색 속도 느림
더보기

복습을 하면서 제네릭에 대한 이해가 부족함을 느꼈다. List는 풀고 바로 알고리즘 문제에서 활용하여 이해가 됬지만 실제 코드에서 사용하지 않다보니, 머릿속에서만 이해가 되어 부족했던거 같다.

제네릭에 대한 복습을 더 해야겟다!

'개발지 > 회고' 카테고리의 다른 글

23년 코테 문제 회고  (0) 2023.12.26
[0808] 8월 1주 주간학습 회고 (0731)  (0) 2023.08.08
[0730] 7월 5주 주간학습 회고  (0) 2023.07.31
[0723] 7월 4주 주간학습 회고  (0) 2023.07.29