프로그래밍 언어/Java

[Java] Set / Map / HashMap

eunnys 2024. 1. 29. 14:03

Set

  • Set은 객체의 저장 순서가 유지되지 않고 중복해서 저장할 수 없는 특징을 가지고 있다.
  • Set은 순서가 없기 때문에 인덱스가 없고 따라서 인덱스로 객체를 검색해서 가져오는 메소드도 없다.

 

 

 

 

Map

  • Map은 키(key)와 벨류(value)로 구성된 객체를 저장하는 구조를 가지고 있다.
  • 키(key)는 중복 저장할 수 없지만 값(value)는 중복 저장할 수 있다.
  • 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대체된다.

 

 

 

 

HashMap

  • hashMap은 map 인터페이스를 구현한 대표적인 Map 컬렉션이다.
  • 주로 key 타입은 String을 많이 사용하고, value 타입은 저장할 객체 타입을 사용한다.

 

 

 

 

 


## Map, HashMap

package struct;

import java.util.HashMap;
import java.util.Map;

public class MapTest1 {

	public static void main(String[] args) {
		Map<Integer,String> map = new HashMap<>(); 
		// 데이터 넣기
		map.put(100, "홍길동"); // key, value
		map.put(200, "사오정");
		map.put(300, "저팔계");
		
		System.out.println(map);
		
		// key값을 같은 값을 주면 replace됨
		map.put(100, "삼장법사");
		System.out.println(map);
		
		// 정수가 객체로 변경 (Auto Boxing)
		// key가 있으면 value값 반환, 아니면 null 반환
		System.out.println(map.get(300));
		
		// 존재여부 확인 boolean type으로 반환
		map.containsKey(700); // false
		map.containsValue("삼장법사");
		
		// key 200인 사오정 삭제
		map.remove(200); 
		
		
		map.replace(100,  "전우치"); // key가 100인 값의 value를 수정
		map.put(100, "삼장법사");    // 삽입, 수정
		
		System.out.println(map.size());
	}

}

 

 

## Set

package struct;

import java.util.HashSet;
import java.util.Set;

public class SetTest1 {

	public static void main(String[] args) {
		Set<String> set = new HashSet<>();
		set.add("아이스아메리카노");
		set.add("카페모가");
		set.add("아이스초코");	
		set.add("자바프라프티노");
		set.add("돌체라떼");
		
		set.contains("허니블랙티"); // 들어있는지 물어봄
		set.add("카페모카"); // 집합은 동일한 데이터를 넣을 수 없음
		
		set.size();    // 5개
		set.isEmpty(); // false
		//set.clear();
		set.remove("아메리카노"); // false ==> 없어서 못지움타입 반환
	}
}