프로그래밍 언어/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 ==> 없어서 못지움타입 반환
}
}