ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] Collection 자료구조 정리
    프로그래밍 공부/JAVA 2021. 3. 4. 23:02

    [출처] https://static.javatpoint.com/images/java-collection-hierarchy.png

     

    List

    : 배열과 비슷한 자료형, 원소의 개수가 가변적일 때 사용한다.

     

    - add(val): 배열에 끝에 val 삽입

    - add(idx, val): idx 위치에 val 삽입 

    set(idx, val): idx 위치의 원소를 val 값으로 변경 

    - get(idx): idx에 해당하는 값을 반환

    - size(): 리스트의 개수 반환

    - contains(val): 리스트에 val이 있다면 true 반환

    - remove(val): val 삭제 후 삭제 결과 반환(true/false)

    - remove(idx): idx위치 값 삭제 후삭제된 항목 반환

    - clear(): 리스트의 모든 값 삭제

     

    ArrayList

    : List 인터페이스를 구현한 클래스

     

    LinkedList

    : 원소들을 인덱스로 관리하는 arraylist와 달리 링크를 이용하여 원소들을 관리한다.

    원소를 삽입, 삭제하는 연산이 많이 발생할 때 성능이 좋다.

     

    Vector

    : arraylist와 달리 동기화된 메서드로 구성되어 있어 멀티 스레드 환경에서 안전하게 사용 가능하다.

     

     

    Queue

    : FIFO를 구현한 자료형, LinkedList 클래스를 이용하여 선언한다.

    Queue<Integer> queue = new LinkedList<Integer>();

    - add(val): val 값 삽입, 저장공간 부족하면 오류 발생 (IllegalStateException) 

    offer(val): val 값 삽입, 삽입 결과 반환(true/false)

    element(): 삭제 없이 요소 반환, 큐가 비어 있으면 오류 발생

    peek(): 삭제 없이 요소 반환, 큐가 비어 있으면 null 반환

    remove(): 큐에서 요소를 삭제하고 요소 반환, 큐가 비어 있으면 오류 발생

    poll(): 큐에서 요소를 삭제하고 요소 반환.

     

    PriorityQueue

    : 우선순위가 높은 요소부터 반환,우선순위는 숫자가 작을수록 높다.

    숫자가 아닌 다른 객체라면 객체 비교 방법을 제공해야 한다.

    // 값이 큰 순서대로 
    PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
    
    // 객체가 클래스인 경우, 클래스 선언
    public class Student implements Comparable<Student>{
    	int num;
        String name;
        
        @Override
        public int compareTo(Student o){
        	return this.num-o.num; // num 값이 작을 수록 우선순위가 큼
        }
    }

    Deque

    : 큐의 양쪽으로 삽입과 삭제 연산을 수행한다. arrayList를 이용하여 선언한다.

    Deque<Integer> queue = new LinkedList<Integer>();

     

    - 큐 메서드의 뒤에 First 또는 Last를 붙여 사용한다.

     

    Set

    : 요소의 저장 순서를 유지하지 않고, 중복 저장을 허용하지 않는 인터페이스

     

    - add(val): 값 추가

    - size(): set의 개수 반환

    - contains(val): set에 val이 있다면 true 반환

    - remove(val): val 삭제 후 삭제 결과 반환(true/false)

    - clear(): 리스트의 모든 값 삭제

     

    HashSet

    : 요소를 hash table에 저장. set을 구현한 클래스 중 가장 성능이 좋다

     

    TreeSet

    : 요소의 값에 따라 정렬되어 저장된다.

     

    LinkedHashSet

    : 연결된 목록 타입으로 구현된 hash table에 저장되어 저장된 순서에 따라 값이 정렬됨

     

    Stack

    : LIFO를 구현한 자료형 클래스

     

    - push(val): val 값 삽입

    - peek(): 삭제 없이 요소 반환

    - pop(): 요소 반환 후 요소 삭제

    - empty(): 비어있는지 판별

    - search(val): val 값 스택에 존재하는지 확인

    '프로그래밍 공부 > JAVA' 카테고리의 다른 글

    JAVA 특징 정리  (0) 2021.07.06
    [JAVA] I/O BufferedReader와 StringBuilder  (0) 2021.03.24
    [JAVA] 정렬(Sorting)  (0) 2021.03.08
    [JAVA] 형변환  (0) 2021.03.06

    댓글

Designed by Tistory.