Collection은 객체를 모아놓은 것 배열보다 훨씬 더 많은 기능이 있고 특징이 다름

삭제 삽입 동적 할당 크기 변동 다형성 적용 등이 가능

List

객체를 모아 저장하며 인덱스와 순서를 가지며 중복 저장 허용

ArrayList 배열의 특성을 가지고 있으며 크기가 원하는 대로 변함 인덱스 때문에 속도 측면에서 느릴 수 있음 (예: 중간에 값이 삭제/추가되는 경우)

LinkedList 연결 리스트 구조로 특정 상황에서 ArrayList보다 빠름

Generic을 통해 원하는 타입을 모아놓을 수 있음 List nick = new ArrayList<>();

주요 메서드 nick.add(“멍멍이”) 객체 추가 nick.get(1) 인덱스 참조 nick.size() 리스트 크기 반환 nick.set(2, “Something”) 인덱스 수정 nick.contains(“Something”) 객체 존재 유무 nick.clear() 전체 삭제 nick.isEmpty() 비어있는지 확인

Collections 활용 Collections.addAll(list, 값, 값…) 한 번에 객체 많이 추가 Collections.frequency(list, 값) 등장 횟수 구하기 Collections.min Collections.max 최대/최소값 구하기 Collections.sort 정렬 Collections.shuffle 무작위 섞기 Collections.fill 원하는 값으로 초기화

Set

집합을 구현해놓은 클래스이며 중복 허용 안 함

Hash

어떤 값을 넣었을 때 예측하지 못할 값이 생성되는 알고리즘 예측할 수 없는 값을 이용하기 때문에 정렬이 불가능 원래 값으로 돌아갈 수 없는 단방향성 알고리즘으로 보안성이 뛰어남

LinkedList 활용

Stack (LIFO: Last In First Out) push pop peek 활용

Queue (FIFO: First In First Out) offer poll peek 활용