Stack Class
● 배열성 클래스
● LIFO 구조 : 먼저 들어온 값이 마지막에 나간다
Generic(제네릭)
● 잘못된 타입 들어오는 것 방지
● 변환(cast) 필요없음

Stack<타입>변수명 = new Stack<타입>();
타입 선언은 생략가능(색칠한 부분)
타입은 Integer, String, Character 등 여러가지 형태로 선언 가능
Stack class의 주요 메서드
Stack 값 추가하기
● push() 메서드를 사용해 값을 추가할 수 있음
Stack 값 삭제하기
● pop() 메서드를 사용해 Stack 값에서 삭제
Stack 크기 구하기
● size() 메서드를 사용해 Stack안에 있는 값의 개수 출력
Stack 값 출력하기
● firstElement : Stack 의 맨 처음 Input한 값을 찾을 수 있음
● lastElement(), peek() 메서드를 사용해 Stack의 맨 마지막에 Input한 값을 꺼낼 수 있음
Stack 값 검색하기
● contains() : 메서드를 호출하면 값의 여부를 찾아 true, false 반환
● indexOf() : 메서드를 호출하면 값을 위치 Index를 반환
ArrayList 클래스

● 선형배열 객체
● 가변배열임
● 인덱스 값이 있다
● 리스트 : 데이터를 일렬로 늘어놓은 구조
● 선언 방법 : ArrayList<객체타입> 이름 = new ArrayList<>();
데이터 저장하기
● add메소드를 통해 데이터를 저장함
● 특정 용량을 벗어나 데이터를 추가하는 경우 저장 용량이 늘어나며 데이터가 삽입됨
● 선언방법 : 이름.add("aaa");
● 원소를 삽입하고 싶은 경우 인덱스를 인수로 추가(추가된 인덱스 뒤의 원소들은 뒤로 1씩 밀려남)
● 선언방법 : 이름.add(2,"aaab");
데이터 삭제하기
● remove 메소드를 통해 데이터를 삭제함
● 해당 인덱스의 데이터를 삭제한느 경우 인덱스 뒤의 원소들이 앞으로 1씩 당겨짐
● 전체 삭제는 remove 대신 clear 메소드 사용(모든 원소 삭제)
● 선언방법 : 이름.remove(1);
특정 인덱스의 리스트 변경
● set 메서드를 통해 변경
● 이름 set(int index, E element) : 첫번째 파라미터는 arrlist의 위치, 즉 인덱스를 뜻하며
두번째 파라미터는 변경할 값을 의미
원소 참조 및 검색
● get 메서드를 통해 값을 가져옴
● 선언 방법 : public G get(int index)
● indexOf 메서드를 통해 특정 데이터의 인덱스를 알 수 있음
● 선언 방법 : public int indexOf(Object o)
리스트 크기 구하는 법
● arraylist.size 메서드를 통해 리스트 내에 있는 원소의 개수 리턴함
리스트 비어있는지 확인하는 법
● isEmpty()를 활용해 데이터가 있는지 없는지 확인함
리스트를 현재 사이즈로 최적화
● trimToSize()를 통해 현재 리스트 사이즈에 축소해 최적화함
LinkedList 클래스
● 데이터를 효율적으로 추가, 삭제, 변경 등 동작을 하기 위해 사용
● ArrayList와 기능은 동일
● 차이점은 다르게 불연속적으로 존재하며, 데이터들은 서로 연결되어 있음
Vector(백터 클래스)
● ArrayList와 동일
● Thread safe
● ArrayList보단 무겁다
● 객체의 삽입, 삭제, 이동이 쉽다
● 데이터를 저장한 순서를 기억한다. (순서대로 저장)
● 데이터 중복 저장을 허용함
● 다양한 타입의 데이터들을 저장할 수 있음
● 기본형 데이터는 저장할 수 없음
ArrayList와 Vector의 차이점
● ArrayList는 Thread-safe하지 않음, Vector은 Thread- safe함. 성능은 ArrayList가 더 좋음
● ArrayList는 Iterator만 사용할 수 있고, Vector은 Enumeration, Iterator 둘다 사용할 수 있음
HashSet Class
● 데이터 순서가 없음
● 중복값이 들어가지 않음
● 선언방법 : HashSet<데이터타입> 변수명 = new HashSet<데이터타입>();으로 선언
값 추가 :add
값 삭제 : remove
값 크기 : size
값 출력 : Iterator
값 검색 : contains
HashMap Class
● Map 인터페이스를 구현
● Key 값, Value 값을 쌍으로 저장
● Key 값은 중복 불가
● 선언 방법 : HashMap<타입, 타입>map = new HashMap<>();

데이터 삽입 : put 메서드
데이터 가져오는 법 : get() 메서드
Iterator 메서드
● Iterator 객체를 리턴함, 반복문으로 데이터를 처리할 때 유용함
● Iterator이 공통적으로 가지고 있는 hasNext() 함수로 null인지 판단해서 while문으로 반복함
● 그리고 데이터를 가져올 수 있는 next()함수로 값을 꺼냄
● next로 꺼낸 값은 key 값
● key 값에 해당하는 value를 가져오려면 get() 함수 사용
Queue Class
● 배열성 인터페이스
● 선입선출(FIFO) : 먼저 들어온 값이 먼저 나간다.

메서드
값 추가 : add, offer
값 삭제
● poll() : 대기열이 비어있으면 null을 반환
● clear : 초기화
● remove : 대기열이 비어있으면 NoSuchElement 에러 반환
값크기 : size
출력 : peek(맨 처음 넣은 값 확인 가능), Iterator 클래스를 사용해 모든 값을 출력
* HashMap, HashSet, ArrayList를 주로 사용함
'JAVA_이클립스' 카테고리의 다른 글
| JAVA - Scanner 클래스/Random 클래스 (0) | 2023.02.23 |
|---|---|
| JAVA - Date Class/ Calendar 클래스(feat.관련 메서드) (0) | 2023.02.23 |
| JAVA - Object 클래스 (0) | 2023.02.18 |
| JAVA - Wrapper Class(래퍼 클래스) (0) | 2023.02.18 |
| JAVA - StringTokenizer 클래스 (0) | 2023.02.18 |