Collection
: 여러 원소들을 담을 수 있는 자료구조
( = 인터페이스 . 각 자료구조들은 Collection인터페이스를 구현한 것이고, 이때 iterator가 사용된다 )
세 가지 큰 분류 인터페이스
= List / Set / Map
1. List<E> 인터페이스
: 순서가 있는 데이터 집합, 중복허용 o
->구현 클래스 : Linked List, Stack, Queue, ArrayList, Vector
• LinkedList<T>
: 저장할 요소를 노드로 만들어 값과 포인터를 저장함. 삽입, 삭제 빠르나 탐색이 느리다. 단일/이중연결리스트 존재
• Vector<T>
: 연결리스트와 같은 동작을 수행, Thread-safe ! 동기화를 지원함. 한번에 한 스레드만 vector호출가능. 그치만 속도는 연결리스트보다 느림
2. Set<E>
: 순서 없는 데이터 집합, 중복 허용 x
-> HashSet, TreeSet
3. Map<K, V>
: 키와 값의 한쌍으로 이루어지는 데이터 집합. 순서 x. 키는 중복 허용 x, value는 중복 허용 ㅇ
key는 value를 찾기 위한 이름의 역할 ^^
->HashMap<K,V>, TreeMap, HashTable, Properties
함수들
clear()/ containsKey(Object key), containsValue(Object)/get(Object key)/keySet() -> set으로 키들 set반환/
put(Object key, Object value)/remove(Object key, Object value) (벨류없어도됨)/replace/size()
넣는거 put 빼는거 remove
replace, 가져오는거 get
키들 반복 돌리기
for(String fruit: fruitData.keySet()){ //ketSet() !!
~~
}
Collection method
: 각 자료구조 클래스를 구현한 후 다음과 같은 메소드들을 사용할 수 있다
Iterator
= java.util에 있는 인터페이스
: 컬렉션에 저장되어있는 요소들을 읽어오는 방법을 표준화 한 것!
이렇게 구성됨!
hasNext()는 다음 요소가 잇는지 t/f반환
next()는 다음꺼 가져옴
remove는 해당 iterator로 불러와지는 마지막 요소를 제거함! - 반드시 next뒤에 사용
** 걍 접근할때만 사용하는거 !! 추가 이런거안되고 뒤로 돌아가는 것도 안됨! !
다시하고싶으면 iterator을 다시만들어야함 !!
-> List, Set이런 프레임워크의 멤버변수로 Iterator 다 구현되어 있는 듯
-> 사용할 대는
Iterator<데이터타입> name = 컬렉션변수이름.iterator();
이렇게 가져옴!
ex)
ArrayList<Integer> list=new ArrayList<Integer>();
Iterator<Integer> name = list.iterator();
name.hasNext();
name.next();
name.remove();
while(name.hasNext()){
name.next() 프린트
}
name.remove();
-> for each문은 Iterator과 동일한 역할!!
while(Integer i:list){
System.out.println(i);
last=i;
}
list.remove(last); //remove(Obj) 이 함수가 컬렉션에 존재하므로 !
하면 iterator로 전체프린트 후 마지막 없애는거 똑같이할수잇음!!
'2-1 > 객체지향 - java' 카테고리의 다른 글
디자인패턴 2 - Observer & Decorator (0) | 2022.06.18 |
---|---|
Design pattern - Singleton (0) | 2022.06.13 |
14- ArrayList , Generics (0) | 2022.06.13 |
Interfaces and Inner Classes (0) | 2022.06.02 |
19- Threads (0) | 2022.05.31 |