✔️Stack
값을 수직으로 쌓아놓고 넣었다가 빼서 조회하는 형식으로 데이터를 관리 (First In Last Out)
최근 저장된 데이터를 나열하고 싶거나, 데이터의 중복 처리를 막고싶을 때 사용한다.
선언 : Stack<반환타입> stackname = new Stack<반환타입>()

추가 : stackname.push()

조회 : stackname.pop()

꺼내기 : stackname.peek()

✔️Queue
한 쪽에서 데이터를 넣고 반대쪽에서 데이터를 뽑을 수 있는 형태.
생성자가 없는 인터페이스
선언,생성 : Queue<반환타입> queueName = new LinkedList<반환타입>

추가 : queueName.add()

꺼내기 : queueName.poll()

조회 : queueName.peek()

✔️Set
순서가 없는 데이터의 집합 (데이터 중복 허용 안 함) - 순서 없고 중복 없는 배열
Set은 그냥 Set으로 쓸 수도 있지만 HashSet, TreeSet 등으로 응용하여 사용할 수 있다.
Set는 생성자가 없는 껍데기라서 바로 생성할 수는 없음(껍데기 = 인터페이스)
- 생성자가 존재하는 클래스인
HashSet를 사용하여 Set를 생성해서 받을 수 있다.
선언,생성 : Set<반환타입> setName = new [HashSet/TreeSet ..]<반환타입>

추가 : setName.add()

삭제 : setName.remove()

포함확인 : setName.contains()

✔️Map
key-value 구조로 구성된 데이터를 저장
Map 은 그냥 Map으로 쓸 수도 있지만 HashMap, TreeMap등으로 응용하여 사용할 수 있다
선언 및 생성 : Map<key type, value type> mapName = new HashMap<>()

추가 : mapName.put({추가할 key값}, {추가할 value값})

조회 : mapName.get({조회할 key값})
전체 key 조회 : mapName.keySet()

전체 value 조회 : mapName.values()

삭제 : mapName.remove()