컬렉션 프레임워크_혼공자 5주차

·2022년 2월 20일

혼공단 7기_ 자바

목록 보기
5/6

키워드 정리

컬렉션 프레임워크

많이 사용하는 자료구조를 편리하게 사용할 수 있도록 java.util 패키지에서 제공하는 인터페이스구현 클래스.

컬렉션(Collection) : 객체의 저장
프레임워크(Framework) : 사용 방법을 정해놓은 라이브러리

주요 인터페이스
List, Set, Map

List 컬렉션

배열과 비슷하지만 배열과는 다르게 용량(capacity)을 동적으로 바꾼다.

특징

  • 객체를 인덱스로 관리.
  • 저장 용량이 자동으로 증가됨.
  • 인덱스 자동으로 부여됨.

List 인터페이스의 구현클래스
ArrayList : 삽입, 삭제에 성능 안 좋음, 맨 마지막에 객체 삽입, 인덱스로 값 찾기에 적합.
Vector : ArrayList와 동일한 내부 구조이나, 동기화된(synchronized) 메소드로 구성돼있음. 그래서 스레드에 안전(thread safe)함
LinkedList : 인접 참조를 링크해서 체인처럼 관리. 맨 마지막에 객체 삽입, 인덱스로 값 찾기에 성능 안 좋음 삽입, 삭제에 좋음.

Set 컬렉션

수학의 집합과 같이 서로 다른 데이터들을 순서 없이 저장한다.

특징

  • 저장순서가 유지되지 않음.
  • 중복 데이터를 허용하지 않음.
  • 하나의 null만 저장 가능함.

Set 인터페이스의 구현클래스
HashSet, LinkedHashSet, TreeSet

Map 컬렉션

키(key)와 값(value)로 구성되어 있다.

특징

  • Map 인터페이스 안의 중첩 인터페이스로 Entry를 가지고 있다.
  • Map.Entry 객체를 저장하는 구조이다.

Map 인터페이스의 구현클래스
HashMap, Hashtable(HashMap과 같은 구조, 스레드에 안전), LinkedHashMap, TreeMap, Properties

LIFO, FIFO 컬렉션

LIFO(후입선출) : 나중에 넣은 객체가 먼저 빠져나감 --> Stack 클래스
FIFO(선입선출) : 먼저 넣은 객체가 먼저 빠져나감 --> Queue 인터페이스

Queue 인터페이스를 구현한 대표적인 클래스는 LinkedList이다.

혼공학습단 선택 미션

코딩 화면

전체 코드

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class HashMapExample {

	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<>();
		
		map.put("신용권", 85);
		map.put("홍길동", 90);
		map.put("동장군", 80);
		map.put("홍길동", 95);
		
		System.out.println("총 Entry 수: "+map.size());
		
		System.out.println("\t홍길동 : "+map.get("홍길동"));
		System.out.println();
		
		Set<String> keySet = map.keySet();
		Iterator<String> keyIterator = keySet.iterator();
		while(keyIterator.hasNext())
		{
			String key = keyIterator.next();
			Integer value = map.get(key);
			System.out.println("\t"+key+" : "+value);
		}
		
		System.out.println();
		
		map.remove("홍길동");
		System.out.println("총 Entry 수: "+map.size());
		
		Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
		Iterator<Map.Entry<String, Integer>> entryIterator = entrySㄴet.iterator();
		
		while(entryIterator.hasNext())
		{
			Map.Entry<String, Integer> entry = entryIterator.next();
			String key = entry.getKey();
			Integer value = entry.getValue();
			System.out.println("\t"+key+" : "+value);
		}
		System.out.println();
		
		map.clear();
		System.out.println("총 Entry 수: "+map.size());
		
		
	}

}

결과 화면


0개의 댓글