Ex60_List.java
컬렉션, Collection
-JCF, Java Collection Framework
- 배열
- (향상된) 배열
- 기존의 순수 배열
- 사용법 개량
- 용도에 따른 입출력 방식/효율성 개량
- 클래스 + 내부 순수 배열을 가지고 있다.
- 길이가 가변이다 > 방의 개수를 마음대로 늘리고 줄이는게 가능
- 자료 구조
컬렉션 종류
1.List 계열
- ArrayList(*****) > 연습 많이 해야함
- LinkedList
- Queue
- Stack
- Vector(legacy)> 언젠간 사라질 수도 ..? 많이 안써서
2. Set 계열
- HashSet
- TreeSet
3. Map 계열
- HashMap(****)
- TreeMap
- Properties(legacy)언젠간 사라질 수도 ..? 많이 안써서
- HashTable(legacy)언젠간 사라질 수도 ..? 많이 안써서
//List, Set, Map >> 인터페이스
Collection(Interface)
- List
- Set
- Map
>> List, Set은 비슷한데 Map 아예 다른 느낌
ArrayList 클래스
- ArrayList(C) -> List(I) -> Collection(I)
- 순수 배열과 구조가 가장 유사함
- 첨자(index)를 사용해서 요소(element)에 접근
Ex61_Stack.java
자료구조(컬렉션) - 물리적인 특징(내부 구조) - 추상적인 특징(사용법)
ADT - Abstract Data Type - Stack, Queue List - ArrayList - Queue - Stack
Stack - 후입선출 -LIFO, Last Input First Output - 저장소에 나중에 들어간 요소가 가장 먼저 나온다. ex)메모리 구조(Stack) ex) 되돌리기(Ctrl+Z), 다시하기(Ctrl+Y)
Queue - 선입선출 - FIFO, Fㅑrst Input First Output - 저장소에 먼저 들어간 요소가 먼저 나온다. ex)줄서기
Ex62_Map.java
ArrayList
- 요소 접근 > 첨자(index) 사용
- 순서가 있는 데이터 집합(방번호 == 요소의 순서)
ex) 강의실 6개 > 1강의실, 2강의실, 3강의실..6강의실
- 스칼라 배열(Scalar Array)
- 요소 일관 접근 > 루프(for)
- 요소끼리 구분이 힘들다 > 방번호 > 의미가 없다 (번호로 되어 있어서 식별이 힘들다.)
- 첨자(index)는 유일하다.
- 값(value)은 중복이 가능하다. > 방번호가 유일해서 ~~
HashMap
- 요소 접근 > 키(key) 사용
- 순서가 없는 데이터 집합(방번호X)
ex) 강의실 6개 > 햇님반, 달님반, 별님반...지구반 > 이 이름들을 키라고 한다~
- 키(Key) -> 값(value)
- 맵(Map), 딕셔너리(Dictionary) = 사전 구조
- 연관 배열
- 요소 일관 접급 > 불가능(for문, 즉 루프를 못 돌림/ 번호가 없어서)
- 요소끼리 구분이 용이하다 > 식별자(key) > 방의 의미를 알 수 있다 > 가독성이 좋음~
- 키(key)는 유일하다.
- 값(value)은 중복이 가능하다. > 키가 유일해서..
ex) 사전에서 blue의 뜻을 찾을 때 blue는 키, 그 뜻은 데이터 값을 나타낸다.
blue > 파란 색상을 나타내는 말