-
- 데이터 여러개를 뭉뚱그려서 하나로 관리하는 것
-collection은 단순 배열과 다르게 알고리즘이 거기에 포함되어 있다.
Set : 중복을 포함하지 않는 묶음. 예)trump card 52의 카드가 중복이 되지 않는다.
List : 순서가 있는 묶음.(Ordered collection)/ 짚어 넣은 순서대로 순서가 지켜지고 있는 것.
예)게시글 순서
Queue : First in First Out.(FIFO)
Deque:양방향 큐.LIFO,FIFO 모두가능
Map:키-값 매핑. 중복 키 허용하지 않음.
Queue : First in first out /버스에 앞문과 뒷문이 모두 존재 앞문으로 타로 뒷문으로 내린다.
Stack : Last in first out / 버스에 앞문만 존재하는 경우
Deque: 버스에 앞문과 뒷문이 있는데 두문으로 모두 타고 내릴 수 있다./ 자체로 Stack기능 포함
Vector는 동기화 되어있다./동기화 되어 있는 object -> thread-safe하다.
thread-safe : 어떤 한 데이터 묶음이 있는데, 데이터묶음 한개를 여러 스레드가 동시에 access했을 때도,
데이터 묶음이 견고하게 동작하게 만든 것이 동기화 되어 있는 것이다.
반대로, 여러 스레드에서 접근하는 것이 아니면, Vector를 사용할 필요가 없다.
실제로 웹에서 사용할때 데이터 묶음을 가져와서 화면에서 뿌리는 것은 하나의 스레드가
하나의 List를 사용해서 뿌리고 끝난다.
리스트 중간에 삽입하기
list.add(2,100);//index 2에 100 삽입입 System.out.println(list); System.out.println("리스트의 엘리먼트 갯수:"+list.size());
특정 위치의 element 찾기
System.out.println(list.get(3));
1.Queue 테스트
Queue<String> queue = new ArrayDeque<>(); // First In First Out queue.offer("Seoul"); queue.offer("Busan"); queue.offer("LA"); System.out.println(queue); //[Seoul,Busan,LA] System.out.println(queue.poll()); //Seoul System.out.println(queue.poll()); //Busan System.out.println(queue); //[LA]
-Queue에는 offer와 poll이라는 메서드가 존재한다.
2.Deque 테스트 1
Deque<String> stack = new ArrayDeque<>(); // 양방향으로 넣고 뺄수 있는 stack.offer("Seoul"); stack.offer("Busan"); stack.offer("LA"); System.out.println(stack); //[Seoul,Busan,LA] System.out.print(stack.pollLast()); //LA System.out.println(stack.pollLast()); //Busan System.out.println(stack); //[Seoul]
3.Deque 테스트 2
Deque<String>deque = new ArrayDeque<>(); deque.offer("Seoul"); deque.offer("Busan"); deque.offerFirst("LA"); System.out.println(deque); //[LA,Seoul,Busan] System.out.println(deque.poll()); //LA System.out.println(deque.pollLast()); //Busan System.out.println(deque); //[Seoul]
'개발언어' 카테고리의 다른 글
제네릭 (0) 2021.12.27 Exception의 중요한 특징들 (0) 2021.12.23 try-with-resources (0) 2021.12.23 Exception (0) 2021.12.22