//import문
import java.util.ArrayList;
//ArrayList 선언
ArrayList<String> list = new ArrayList<String>();
//원소 삽입 1(순차적)
list.add("aaa");
list.add("bbb");
//원소 삽입2(특정 인덱스)
list.add("3","ccc");
//특정 인덱스의 원소를 변경
list.set("1","aaaaa");
//특정 인덱스의 원소 삭제
list.remove(1);
//특정 인덱스 원소 가져오기
list.get(0);
//맨 앞부터 원소 값으로 인덱스 가져오기
//원소가 없으면 -1 반환
int index = list.indexOf("bbb");
//맨 뒤부터 원소 값으로 인덱스 가져오기
//원소가 없으면 -1 반환
int index2 = list.lastIndexOf("ccc");
ArrayList는 배열과 비슷하지만 크기 선언을 해주지 않아도 된다는 장점을 가진 자료 구조
//import문
import java.util.LinkedList;
//LinkedList 선언문
LinkedList<String> list = new LinkedList<String>();
LinkedList는 배열 중간에 원소 삽입, 삭제 등이 일어나는 경우에 사용한다.
//import문
import java.util.Stack;
//Stack 선언
Stack<String> stack = new Stack<>();
//원소 삽입
stack.push("1");
stack.push("2");
//원소 삭제
//가장 마지막에 저장한 값 삭제
stack.pop();
//원소 전제 삭제
stack.clear();
//원소 제일 위에 있는 값 가져오기
stack.peek();
//stack에 저장된 원소의 수
stack.size();
//stack 원소 여부 체크
//원소가 하나 이상일 경우 true, 하나도 없을 경우 false 반환
stack.empty();
//원소 값 찾기
//원소가 있을 경우 true, 없을 경우 false 반환
stack.contains("1");
Stack은 늦게 들어온 값이 먼저 나가는 자료구조이다.
//import문
import java.util.LinkedList;
import java.util.Queue;
//Queue 선언
Queue<String> queue = new LinkedList<>();
//원소 삽입
queue.add("11");
queue.offer("22");
//원소 삭제
queue.remove();
//원소 가져온 후 삭제
queue.poll();
//원소 전체 삭제
queue.clear();
//가장 먼저 삽입된 값 가져오기
queue.peek();
Queue는 먼저 들어온 값이 먼저 나가는 자료구조이다.
//import문
import java.util.PriorityQueue
//Priority Queue 선언
//우선순위가 낮은 숫자 순
PriorityQueue<String> priorityQueue = new PriorityQueue<>();
//우선 순위가 높은 숫자 순
PriorityQueue<String> priorityQueue = new PriorityQueue<>(Collections.reverseOrder());
//원소 삽입
priorityQueue.add("1");
priorityQueue.offer("2");
//원소 삭제
//첫번째 값을 가져온 후 제거
priorityQueue.poll();
//첫번째 값 제거
priorityQueue.remove();
//원소 전체 삭제
priorityQueue.clear();
//원소 첫번째 값 가져오기
priorityQueue.peek();
PriorityQueue는 우선순위가 높은 순대로 정렬되는 FIFO 자료구조이다.
//import문
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
//HashSet 선언
Set<String> hashset = new HashSet<>();
//원소 추가
hashset.add("1");
hashset.add("2");
//원소 삭제
hashset.remove("1");
//원소 전체 삭제
hashset.clear();
//원소 개수 구하기
hashset.size();
//값 출력
//일반적인 자료구조와 다르게 get을 지원하지 않음
Iterator iter = hashset.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
//원소 검색하기
//값이 있으면 true, 없으면 false
hashset.contains("2");
HashSet은 중복값을 허용하지 않고 인덱스가 없는 자료구조이다.
//import문
import java.util.Set;
import java.util.LinkedHashSet;
import java.util.Iterator;
//LinkedHashSet 선언
Set<String> linkedHashSet = new LinkedHashSet<>();
//원소 삽입
linkedHashSet.add("1");
linkedHashSet.add("2");
//원소 삭제
linkedHashSet.remove("1");
//원소 전제 삭제
linkedHashSet.clear();
//원소의 개수
linkedHashSet.size();
//값 출력
Iterator iter = linkedHashSet.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
LinkedHashSet은 중복값을 허용하지 않고 삽입된 순서대로 정렬되는 자료구조이다.