이전 포스트에 이어서 다시 복습하자면
try - catch : 직접 그 자리에서 예외 처리
throws : 메소드 선언부에 위치하고 있으며 호출한 쪽에서 처리하도록 유도함 -> 직접 처리하지 않고 넘김.
throw : 직접 예외를 던지는 방법, 하위 컴포넌트가 상위 컴포넌트에게 예외 전달하기 위해 사용
예를 들어, login 메소드에서 예외를 2개 던지고 있으면, login을 사용하는 곳에서 예외처리를 해주어야 하고, catch문이 2개 나오게 됨.
throw new xxx();
예외 종류는 1. 런타임 2. Exception이 있다. -> 상속 부모들.
런타임은 빨간 줄이 안뜸 -> 코드 간결
예외를 직접 만들 수도 있다.
고려해야 하는 것 : 1. 이름 2. exception? runtime? 선택!
대표적으로 List, Set, Map이 존재한다. (map은 컬렉션 상속 받지 않음)
List - ArrayList
Set - HashSet
Map - HashMap
옆으로 배열.
자바의 배열 []와는 조금 차이가 있다.
대표적으로는, 중간에 값이 지워졌을 때 자동으로 정렬이 된다.
형태 :
ArrayList<String> list = new ArrayList<String>();
List<String> list2 = new ArrayList<>();
-> 두 코드는 같은 코드이다. 2번째 코드를 많이 사용한다.
-> list의 자식 클래스가 ArrayList이기 때문에 사용하기에 보다 범위가 넓음.
다음 요소를 바라보는 형태.
1 3 5 6 으로 배열되어 있다고 하면,
1(3) 3(5) 5(6) 이런식으로 표현이 된다.
<> 을 이용해 어떤 형태의 타입을 넣을 것인지 꼭 명시해 사용한다.
제네릭은 기본 자료형 사용 불가 (ex : int -> Integer)
Wrapper Class : 기본 자료형이 각 매칭되는 참조 자료형
Map이란 key - value가 같이 들어가 있는 리스트라고 생각하면 된다.
형태:
<코드 발전 형태>
HashMap map = new HashMap();
HashMap<키, 값> map = new HashMap<>();
Map<키, 값> map = new HashMap<>();
-> 부모 타입으로 선언하자.
<표준>
Map<String, Integer> = new HashMap<>(); -> 기본!
List<Map<String, Object>> list = new ArrayList<>; -> 흔히 사용되는 형태
리스트와 맵의 큰 차이점은 대괄호 vs 중괄호 이다.
데이터를 처리하는 방법 중 하나이다.
list를 stream() 함수를 쓴 다음, map, forEach등 연산에 관한 코드를 작성하면 된다.
List<String>list = List.of("a", "bb", "ccc");
* 모든 요소를 출력하려고 할 때.
list.stream().forEach(v -> System.out.println(v));
->이런식으로 람다로 표현.