자바

hash

chantleman 2024. 7. 26. 11:27

 

 

HashSet

- key로 이루어짐

- key값은 중복 허용하지 않고 순서가 보장되지 않음

- set 타입의 대표 컬렉션

 

 

주요 메소드

.add(key)          : 값 추가

.remove(key)    : 값 삭제

.contains(key)   : 포함 여부

.iterator(key)     : 전체 출력을 위한 이터레이터

 

 

		Set set = new HashSet();
		set.add(1);
		set.add("가");
		set.add("a");
		set.add(2);
		
		Iterator it = set.iterator();
		
		while(it.hasNext()) {
			System.out.println(it.next());			
		}

 

 


 

HashMap

 

- key와 value로 이루어짐

- key값은 중복을 허용하지 않고, 순서가 보장되지 않음

- map 타입의 대표 컬렉션

 

 

주요메소드

.put(key, value)    : 데이터 입력 key값은 중복 허용 x, value값은 중복 허용

.get(key)               : key값을 통해 value값을 꺼내올 수 있음

.keySet()               : key로 이루어진 hashSet값을 가져옴

 

 

Map에는 key와 value가 한쌍이기때문에 generic(<>)에도 String(컬럼 이름), Integer(실제 값) 기입

만약 value의 타입이 int 하나가 아니라 여러 타입의 값들이라면 Object로 기입

	Map<String, Integer> map = new HashMap();
	map.put("홍길동", 95);
	map.put("이순신", 70);
    
	Set keySet = map.keySet();
	Iterator<String> it = keySet.iterator();
	while(it.hasNext())
	{
		String key = it.next();
		int value = map.get(key);
		System.out.println(key+", "+value);
	}

 

 

 


 

HashMap 은 속도가 빠르다는 특징이 있습니다.

 

DB는 하드디스크에, JAVA는 메모리에 데이터가 저장돼서 JAVA가 DB보다 빠른데

HashMap까지 있어서 속도가 더 빠릅니다. (그만큼 HashMap이 중요)

 

 

 

HashMap은 DB에 매핑된 데이터를 갖고올때도 사용됩니다.

(Map의 key값이 DB의 컬럼과 맵핑되고, value는 DB의 데이터가 돼서 데이터 갖고올 수 있습니다.)

 

key : 컬럼

value : 데이터

 

Hash Set과 비슷하지만 다른 점이 있다면 

Hash Map은 value를 넣을 수 있는 공간이 있다는 점입니다. (key는 중복x, value는 중복 o)

예) 은행 계좌번호(키) 조회하면 잔액(값) 확인할 수 있음

 

 


 

put   vs   set

put은 주로 map 인터페이스 구현할 때 (키와 값의 쌍을 추가하거나 갱신할 때)

    Map<String, String> map = new HashMap<>();
    map.put("key1", "value1");
    map.put("key2", "value2");

 

set은 주로 list 인터페이스 구현할 때 (특정 인덱스의 요소를 갱신할 때)

    List<String> list = new ArrayList<>();
    list.add("value1"); // 0번째 인덱스에 추가
    list.add("value2"); // 1번째 인덱스에 추가
    list.set(1, "newValue2"); // 1번째 인덱스를 "newValue2"로 갱신

 

 

 

 

 

 

 

'자바' 카테고리의 다른 글

eclispe 상위 버전  (0) 2024.07.29
collection  (0) 2024.07.26
date, calendar  (0) 2024.07.25
try-catch, throw Exception  (2) 2024.07.24
간단한 게시판 예제  (1) 2024.07.24