차근차근 개발자 되기

Java

15일차: Java 자료구조/제네릭/예외처리 - 2021.07.05

wellow 2021. 7. 5. 23:40

목차

1.    자료구조

2.    제네릭

3.    예외처리

 

1. 자료구조(Collection)                                        

 

1) Map 인터페이스                                                     → ★MapTest / HashTableTest 참고

• Map 인터페이스  - HashMap, HashTable (상속받는 클래스)

- 여러가지 자료형의 Data를 모두 저장할 수 있다. (ex) int, double, char, boolean, String etc)

- Data를 저장할 때 Key, Value를 동시에 저장한다.

- put() 메소드로 데이터를 저장한다.(add() 메소드가 아님)

- key값은 중복이 되면 안 된다. 만약에 중복된 key가 있으면, 가장 마지막에 설정된 value만 사용할 수 있다.

- value값은 중복이 되어도 상관없다.

 

- 입력: put(key, value)

- 출력: 1) key값을 알고 있을 때: 인덱스 번호 대신 key값으로 출력

         2) key값을 모를 때: 열거형(Enumeration)

 

2) (Queue) 인터페이스                                  → ★LinkedListTest 참고

(Queue) 인터페이스 - LinkedList (상속받는 클래스)

- FIFO(First Input First Output) 구조

- 먼저 입력된 자료가 먼저 출력되는 구조

입력 -->                            --> 출력

offer()                                   poll()

 

3) 스택(Stack) 클래스                           → ★StackTest01 / StackTest참고

-  LIFO(Last Input First Output) 구조

   마지막으로 입력된 자료가 가장 먼저 출력되는 구조

- 입력: push()

- 출력: pop()

 

2. 제네릭(Generic)   

→ ★Collections05 / Collections06 / HashTableTest02 / GenericTest01 / GenericTest02 / GenericTest05 참고

 

1) 제네릭을 사용하는 이유

- 컴파일 단계에서잘못된 타입 사용될 수 있는 문제제거가 가능하다.

- 불필요한 타입 변환을 제거한다. 제네릭을 사용하게 되면, 자료구조에서 데이터를 구해올 때 자료형을 생략할 수 있다.

 

2) Generic(제네릭) 표기법  -  JDK 1.5이후부터 지원

  List<String> list = new ArrayList<String>();

  List<Integer> list = new ArrayList<Integer>();

  List<Double> list = new ArrayList<Double>();

  Vector<String>  v =  new Vector<String>();

  Map<String, String> m = new HashMap<String, String>();

 

3. 예외처리

 

1) 오류의 종류

에러(Error)

- 하드웨어의 잘못된 동작 또는 고장으로 인한 오류

- 에러가 발생되면 프로그램 종료

- 정상 실행 상태로 돌아갈 수 없음

 

예외(Exception)

- 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인한 오류

- 예외가 발생되면 프로그램 종료

- 예외 처리 추가하면 정상 실행 상태로 돌아갈 수 있음

 

2) 예외처리 형식

 

예외처리를 하지 않은 경우                  → ★DivideZeroException 참고

 

① try ~ catch 구문                              → ★DivideZeroExceptionHandling 참고

   try{

           예외가 발생할 가능성이 있는 문장;

   }catch(예외클래스명  매개변수){

           예외 메시지;

   }