추가학습 정리
🔔 유학 보내는 두가지 방법 compare to & comparator
🔔 interface 는 무조건 public
🔔 오버라이드 조심할 거 두가지 자식의 학벌은 좋아야 하고 잘못된 건 부모가 카바할 수 있어야 한다.
🔔 접근 제한자 와 뭐였지 하나 더 신경써야 함
배열
가장 기본적인 자료 구조
homogeneous collection 동일한 데이터 타입만 관리 가능!
but 여기서 Polymorphism 이 등장
Object를 이용하면 모든 객체 참조 가능 -> Collection Framework
but 담을 때는 편한데 빼낼 때 Object로만 빼내야 함;;
여기서 Generic 등장
컴파일 타임에 저장하려는 타입 제한 -> 형변환의 번거로움 제거
java.util 패키지
collecion framework 핵심 interface
입력 순서가 있는 데이터의 집합 중복을 허락!
ArrayList, LinkedList
Collection에서 추가된 것 위치!
리스트는 배열에서 시작 된 것 Object로 크기를 정해서
😲 근데 왜 리스트는 크기를 안받냐?
🔔 add 메서드의 끝에 grow 메서드가 동적(copy)으로 배열의 크기를 조절해줌
그래서 100만번 리스트에 값을 추가하면 엄청난 메모리 낭비가 이루어짐
배열의 장점 접근 속도가 빠름 (연속된 메모리)
단점 크기 변경 불가, 삽입 삭제시 느림..
이런 단점을 해결하기 위해 LinkedList
각 요소가 다음 요소의 링크 정보를 가지며 연속적으로 구성될 필요가 없다.
🚨 각 자료구조를 상황에 맞게 사용해야 함
입력 순서를 유지하지 않는 데이터의 집합, 순서 없음, 중복 없음
HashSet
SortedSet
NavigableSet
TreeSet
😲 update가 없다!! 순서가 없기 때문에!!
동일한 데이터가 없다 그러면 동일한 데이터의 기준이 뭘까?
🔔 객체의 equals()가 true를 리턴하고 hashCode() 값이 같은 것
👍 set을 사용할 때는 equals랑 hashCode를 재정의 해서 사용해야 할 거야
key, value 쌍으로 데이터를 관리, 순서 없음, key 중복 불가 , value는 가능
특정 기준에 대한 내림차순 또는 오름차순으로 배치
List SortedSet SortedMap
Collections가 가지고 있는 sort()를 이용해서 정렬
Comparator의 활용
환경 세팅 하고 예습
STL, 비트연산, 연결 리스트
map 집중 못했어서 강의 듣고 한번 쳐보자..