컬렉션 프레임워크

다람·2023년 2월 24일
0

JAVA

목록 보기
22/27
post-thumbnail

컬렉션 프레임워크

  • 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미
    즉 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것
  • 컬렉션 프레임워크는 자바의 인터페이스를 사용하여 구현

컬렉션 프레임워크 주요 인터페이스

  1. List 인터페이스
  2. Set 인터페이스
  3. Map 인터페이스

주요 인터페이스 간 상속 관계

주요 인터페이스 특징

컬렉션 클래스

  • 컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스

ArrayList 예시

public class Collection01{
	public static void main(String[] args){
    	ArrayList<String> = new ArrayList<String>();
        
        // 리스트에 요소 저장
        arrList.add("셋");
        arrList.add("둘");
        arrList.add("하나");
        
        for(int i = 0; i>arrList.size(); i++){
        	System.out.println(arrList.get(i));
        }
    }
}

결과
셋
둘
하나

collection 인터페이스 제공하는 메서드

List 컬렉션 클래스

  • List 컬렉션 클래스에 속하는 클래스
  1. ArrayList
  • 내부적으로 배열을 이용해 요소를 저장
  • 인덱스를 이용해 배열 요소에 빠르게 접근할 수 있다.
ArrayList<Integer> arrList = new ArrayList<Integer>();

// add() 메소드를 이용한 요소의 저장
arrList.add(40);
arrList.add(20);
arrList.add(30);
arrList.add(10);

// for 문과 get() 메소드를 이용한 요소의 출력
for (int i = 0; i < arrList.size(); i++) {
    System.out.print(arrList.get(i) + " ");
}
                                   
// remove() 메소드를 이용한 요소의 제거
arrList.remove(1);

// Enhanced for 문과 get() 메소드를 이용한 요소의 출력
for (int e : arrList) {
    System.out.print(e + " ");
}
                                   
// Collections.sort() 메소드를 이용한 요소의 정렬
Collections.sort(arrList);

// iterator() 메소드와 get() 메소드를 이용한 요소의 출력
Iterator<Integer> iter = arrList.iterator();
while (iter.hasNext()) {
    System.out.print(iter.next() + " ");
}

// set() 메소드를 이용한 요소의 변경
arrList.set(0, 20);
for (int e : arrList) {
    System.out.print(e + " ");
}

// size() 메소드를 이용한 요소의 총 개수
System.out.println("리스트의 크기 : " + arrList.size());

// 실행결화
40 20 30 10 
40 30 10
10 30 40 
20 30 40
리스트의 크기 : 3
  
  1. LinkedList
  • ArrayList와 LinkedList는 내부적으로 요소를 저장하는 방법의 차이가 있다.
  1. Vector
  • ArrayList 클래스와 같은 동작을 한다.
  1. Stack
  • List 클래스의 Vector 클래스를 상속받아 전형적엔 스택 메모리 구조의 클래스에 제공

List 인터페이스 메서드

Set 컬렉션 클래스

  1. HashSet
  • 검색 속도가 매우 빠르며 내부적으로 HashMap 인스턴스를 이용해 요소를 저장한다.
HashSet<String> hs01 = new HashSet<String>();
HashSet<String> hs02 = new HashSet<String>();

// add() 메소드를 이용한 요소의 저장
hs01.add("홍길동");
hs01.add("이순신");
System.out.println(hs01.add("임꺽정"));
System.out.println(hs01.add("임꺽정")); // 중복된 요소의 저장

// Enhanced for 문과 get() 메소드를 이용한 요소의 출력
for (String e : hs01) {
    System.out.print(e + " ");
}
  
// add() 메소드를 이용한 요소의 저장
hs02.add("임꺽정");
hs02.add("홍길동");
hs02.add("이순신");

// iterator() 메소드를 이용한 요소의 출력
Iterator<String> iter02 = hs02.iterator();
while (iter02.hasNext()) {
    System.out.print(iter02.next() + " ");
}

// size() 메소드를 이용한 요소의 총 개수
System.out.println("집합의 크기 : " + hs02.size());

//실행결과
true
false
홍길동 이순신 임꺽정
홍길동 이순신 임꺽정
집합의 크기 : 3
  
  1. TreeSet

Set 인터페이스 메서드

Map 컬렉션 클래스

  1. HashMap<K,V>
  • Map 인터페이스를 구현하므로 중복된 키로는 값을 저장할 수 없다.
  1. Hashtable<K,V>
  2. TreeMap<K,V>
profile
안녕

0개의 댓글