hoon's bLog

Java List, Set, Map 컬렉션프레임워크(Collection Framework) 본문

IT/Java

Java List, Set, Map 컬렉션프레임워크(Collection Framework)

개발한기발자 2021. 1. 5. 17:43
반응형

안녕하세요!

날씨가 부쩍 추워지고 있습니다!

그래도 공부는 안에서 하니! 같이 열심히 해보자구요!

이번 포스팅에서는 List, Set, Map에 대해서 알아보도록 하겠습니다.

그 전에 우선 Collection Framework에 대해서 간단히 알아볼텐데요.

Collection Framework이란, "데이터 군을 저장하는 클래스들을 표준화한 설계" 입니다.

Collection다수의 데이터(데이터 그룹), 프레임웍은 표준화된 프로그래밍 방식을 말합니다.

핵심 인터페이스들과 그들의 특징은 다음과 같습니다.

 

인터페이스 특징
List 순서가 있는 데이터 집합, 데이터의 중복 허용
구현 클래스 : ArrayList, LinkedList, Stack, Vector
Set 순서를 유지하지 않는 데이터의 집합, 데이터 중복 허용 X
구현 클래스 : HashSet, TreeSet
Map Key, Value의 쌍으로 이루어진 데이터의 집합, 순서 유지 X, 키 중복 X, 값 중복은 허용
구현 클래스 : HashMap, TreeMap, Hashtable, Properties 등...

각 인터페이스들은 또한 사용에 용이한 메서드들을 사용할 수 있습니다.

아래 예제를 통해 확인해보세요!

package test;

import java.util.*;

public class StudyInterface {
	public static void main(String[] args) {
		List list = new LinkedList();
		list.add("리스트1");
		list.add("리스트2");
		list.add("리스트3");
		
		System.out.println(list);
		System.out.println(list.get(1));	//배열과 마찬가지로 index는 0부터 시작!
		System.out.println(list.get(2));
		System.out.println(list.indexOf("리스트3"));
		System.out.println(list.indexOf("리스트3"));
		System.out.println(list.listIterator());  //타입을 나타내기때문에 해당 클래스의 주소까지 출력
		list.remove(0);
		System.out.println(list);
		list.set(0, "새로추가");
		System.out.println(list);
	}
}

실행결과

다음은 Map에 관련된 예제 입니다.

public class StudyInterface2 {
	public static void main(String[] args) {
		Map map = new HashMap<String, String>();
		map.put("1", "밸류");
		map.put("2", "밸류");
		map.put("3", "밸류1");
		map.put("4", "밸류2");
		map.put("5", "밸류3");
		System.out.println(map);
		System.out.println(map.containsKey("6"));
		System.out.println(map.get("1"));
		System.out.println(map.get("2"));
		System.out.println((map.get("1").equals("밸류")));
		System.out.println((map.get("2").equals("밸류1")));
		System.out.println(map.size());
		System.out.println(map.keySet());
		System.out.println(map.values());
		map.remove("5");
		System.out.println(map);
	}
}

실행결과

해당 기능만 알고 있으면 정말 쉽습니다.

가장 중요한 건 데이터 저장시 반드시 그에 해당하는 타입이 맞는지를 확인하셔야 합니다.

해당 리스트에, 혹은 맵의 자료형을 구분하지 못하고 넣었다가 에러로 고생하는 경우가 많습니다.

(제가 그랬습니다...흑흑)

 

삽질은 하되, 해당 기능을 정확히 알고 사용하는 삽질은 괜찮지만,

쓸데없이 데이터의 자료형으로 시간 낭비하는 삽질은 멘탈에 해롭습니다.

자유자재로 데이터를 넣는 연습! 꼭 해보시기 바랍니다.

오늘도 이렇게 허접한 글 읽어주셔서 감사합니다!

오타 지적, 태클 언제나 환영입니다!

 

출처 : 자바의 정석 3rd Edition 내용 정리

728x90
반응형

'IT > Java' 카테고리의 다른 글

Java class extends 자바 클래스 상속  (0) 2021.01.06
Java ArrayList 선언, 추가, 삭제, 출력  (0) 2021.01.06
Java String Array 배열  (0) 2021.01.05
Java Array 자바 배열 사용 및 문법  (0) 2021.01.05
Java new instance this 생성자  (0) 2021.01.05