1. Java Collection Framework
- collection: 데이터의 모음
- Framework: 일반적인 기능성이 추상화된 소프트웨어
① 효율적인 데이터 접근 조작 가능 → 조직/관리/저장 → 추상화
② 구성: Interface + Class
- Collection: 직간접으로 상속 구현하며, 계층관계를 만듦 → 최상위 Interface
③ Thread Safe vs. Thread un Safe
- Thread Safe → 둘 이상의 스레드에 의한 동시 접에 안전
- Thread un Safe → 멀티스레딩 프로그래밍 시, 개발자가 직접 동기화 논리를 구현해야 함
④ View Collection
⑤ Unmodifiable Collection
- 변경 X, 조작 X
- 이 Collection에 대한 특정 연산을 호출할 때, 오류 발생
- Collection Interface는 isEmpty, size, add, contains, remove, iterator, clear, toArray, stream 등 제공
⑥ List
- ArrayList: List를 배열기반으로 구현한 것
- 배열의 크기가 부족할 때 개발자 대신 큰 배열을 생성하고, 기존 값 복사
- 필요 시 자동으로 크기가 증가되며, 수동으로 조정 가능 - LinkedList
- Stack
- List는 모두 중복허용 O, 순서유지 O
- ArrayList와 LinkedList는 Thread Safe이지만, Stack은 Thread un Safe
2. ArrayList CRUD 연산
① ArrayList - add
- 삽입은 순서에 맞게 해주어야함 (0 -> 1-> 2-> 3 .... ) 0 위치까지 삽입했는데 갑자기 3 위치에 넣는 것은 안됨
- 예를 들어, 사이즈가 3인 ArrayList에 .add(1, 9)를 하면, 1 위치가 9로 바뀌는 것이 아니라, 1 위치에 9가 들어가고 나머지는 뒤로 밀리며 사이즈가 증가함
② ArrayList - set
- add와 마찬가지로 아직 만들어지지 않은 위치에 삽입하는 것은 불가능함
- 삽입 시 add처럼 뒤로 밀리는 것이 아니라 값을 변환해줌
③ ArrayList - contains
- ArrayList 안에 해당 값이 있는지 확인
- List.contains(value);
④ ArrayList - indexof vs. last indexof
- ArrayList는 중복을 허용하기 때문에 발견이 된 위치가 앞에서부터 탐색하느냐에 따라서
혹은 뒤에서부터 탐색하느냐에 따라서 달라질 수 있음
해당 내용만 2-3번씩 반복해서 듣고 있는데, 처음엔 진짜 전혀 이해가 안되었다 ㅠㅠ
공책에도 적어보고 이렇게 블로그에도 적어보며 듣고 또 들으니 슬슬 뇌에 들어오는 ...
출처: K-MOOC 데이터 엔지니어링, 변재욱, 3-1 ~ 3-3강
'데이터분석 및 데이터엔지니어 > java' 카테고리의 다른 글
[K-MOOC] 데이터엔지니어링 수업 정리 (1) (1) | 2021.10.22 |
---|