벌써 혼공학습단 한지 5주차가 되었습니다!! 시간 너무 빠르고...

 

5주차 미션은!!

 

 

 

Ch13의 내용은 컬렉션 프레임워크에 대한 내용입니다.

 

컬렉션 프레임워크란 ? 

 

배열은 기본 타입뿐만 아니라 클래스타입의 배열도 만들 수 있기 때문에 객체 저장소로 사용할 수 있습니다. 하지만 배열 선언 시 정한 크기를 변경할 수 없고, 항목을 저장, 삭제, 추가하는 메소드가 없기 때문에 인덱스를 사용하는데 이러한 불편함을 해결하기 위해 컬렉션 프레임워크가 제공되었습니다. 대표적으로 List, Set, Map, Stack, Queue 등이 있습니다.

 

List 컬렉션

저장용량이 자동으로 증가하며, 객체를 저장할 때 자동 인덱스가 부여된다. 추가, 삭제, 검색을 위한 다양한 메소드 제공 

 

List 클래스 주요 메서드

기능 메소드 설명
객체추가 boolean add(E e) 주어진 객체를 맨 끝에 추가합니다.
void add(int index, E element) 주어진 인덱스에 객체를 추가합니다.
E set(int index, E element) 주어진 인덱스에 저장된 객체를 주어진 객체로 바꿉니다.
객체 검색 boolean contains(Object o) 주어진 객체가 저장되어 있는지 조사합니다.
E get(int index) 주어진 인덱스에 저장된 객체를 리턴합니다.
boolean isEmpty() 컬렉션이 비어 있는지 조사합니다.
int size() 저장되어 있는 전체 객체 수를 리턴합니다
객체 삭제 void clear() 저장된 모든 객체를 삭제합니다.
E remove(int index) 주어진 인덱스에 저장된 객체를 삭제합니다.
boolean remove(Object o) 주어진 객체를 삭제합니다

 

Set 컬렉션

 

List 컬렉션은 객체의 저장 순서를 유지하지만, Set 컬렉션은 저장 순서가 유지되지 않습니다. 또한 객체를 중복해서 저장할 수 없고, 하나의 null만 저장할 수 있습니다.

 

Set 클래스 주요 메서드

기능  메소드 설명
객체 추가 boolean add(E e) 주어진 객체를 저장합니다. 객체가 성공적으로 저장되면 true를 리턴하고 중복 객체면 false를 리턴합니다.
객체 검색 boolean contains(Object o) 주어진 객체가 저장되어 있는지 조사합니다.
boolean isEmpty() 컬렉션이 비어 있는지 조사합니다.
iterator<E> iterator() 저장된 객체를 한 번씩 가져오는 반복자를 리턴합니다
int size() 저장되어 있는 전체 객체 수를 리턴합니다
객체 삭제 void clear() 저장된 모든 객체를 삭제합니다.
boolean remove(Object o) 주어진 객체를 삭제합니다.

 

Map 컬렉션

 

Map 컬렉션은 키(key)와 값(value)으로 구성된 Map.Entry 객체를 저장하는 구조를 가지고 있습니다. Entry는 Map인터페이스 내부에 선언된 중첩 인터페이스 입니다.  키(key)는 중복 저장 될 수 없지만 값은 중복 저장될 수 있습니다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값 대체됩니다.

 

Map 클래스 주요 메서드

기능 메소드 설명
객체 추가 V put(K key, V value) 주어진 키로 값을 저장합니다. 새로운 키일 경우 null을 리턴하고 동일한 키가 있을 경우 값을 대체하고 이전 값을 리턴합니다.
객체 검색 boolean containsKey(Object key) 주어진 키가 있는지 여부를 확인합니다
boolean containsValue(Object value) 주어진 값이 있는지 여부를 확인합니다.
Set<Map.Entry<K.V>>entrySet() 키와 값이 쌍으로 구성된 모든 Map.Entry 객체를 set에 담아서 리턴합니다
V get(Object key) 주어진 키가 있는 값을 리턴합니다
boolean isEmpty() 컬렉션이 비어 있는지 여부를 확인합니다
Set<K> keySet() 모든 키를 Set 객체에 담아서 리턴합니다.
int size() 저장된 키의 총 수를 리턴합니다.
Collection<V> values() 저장된 모든 값을 Collection에 담아서 리턴합니다.
객체삭제 void clear() 모든 Map.Entry(키와 값)를 삭제합니다.
V remove(Object key) 주어진 키와 일치하는 Map.Entry를 삭제하고 값을 리턴합니다.

 

 

선택미션

-> 이름을 키로, 점수를 값으로 저장하는 HashMap 사용

package chap13;

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<String, Integer>();
		
		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 = entrySet.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("총 Entrt 수 : " + map.size());
	}
}

 

실행결과

 

복사했습니다!