Deeb
디비의 DB
Deeb
전체 방문자
오늘
어제
  • 분류 전체보기 (243)
    • Frontend (63)
      • HTML & CSS (27)
      • JavaScript (17)
      • jQuery (8)
      • React (6)
    • Backend (98)
      • Java (19)
      • JDBC (2)
      • Servlet & JSP (13)
      • Spring (17)
      • Project (0)
      • 개발 공부 (11)
      • 문제 풀이 (8)
      • Algorithm (1)
      • DataBase (0)
      • Oracle (18)
      • Error (8)
    • Knou (1)
    • Review (14)
    • TIL (33)
    • 삽질기록 (8)
    • deebtionary (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리액트
  • alter
  • 자바
  • 배열
  • 후기
  • 함수
  • 책
  • css
  • 삭제
  • GIT
  • 2학기
  • 기초
  • 추천
  • DBMS
  • 방송대
  • 정의
  • 클래스
  • 공부
  • 한빛미디어
  • 에러
  • 다형성
  • For
  • CLASS
  • HTML
  • Java
  • 서평단
  • 방통대
  • DB
  • js
  • 정처기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Deeb

디비의 DB

Backend/Java

[Java] Collection_Map

2021. 10. 6. 10:05

✍Map

: Key와 Value 한 쌍이 데이터가 되어 이를 모아둔 객체
Key
: 중복을 허용하지 않고, 순서가 없어서 (== Set 특징)
Map 내부에 뒤죽박죽으로 저장됨
Value
: Key에 의해서 서로 구분되기 때문에 중복이 가능하다 (== List 특징)

 


1. HashMap<K, V>

Java Map중 가장 기초되는 Map

Key에 해당하는 객체는
반드시 equals(), hashCode()가 오버라이딩 되어 있어야 함.
public void example1() {

	Map<String, Student> map = new HashMap<String, Student>();
	// Key는 String,  Value는 Student로 제한된 Map 생성
		
	// put(Key , Value) : Map에 데이터 추가
	map.put("S001", new Student("홍길동", 15, 2) );
	map.put("S002", new Student("김미영", 19, 3) );
	map.put("S003", new Student("홍길동", 15, 2) ); // Value 중복 (O)
		
	map.put("S002", new Student("김민지", 19, 3) ); // Key 중복 (X)
	// -> 기존에 value를 새로운 value로 수정한다
		
	System.out.println(map); // map.toString()
}

 

2. Map에서 데이터 하나씩 접근하는 방법

public void example2() {
		
		// Map에서 데이터 하나씩 접근하는 방법
		Map<Integer, String> map = new HashMap<>();
											// == 타입 추론
		
		map.put( 1, "고추바사삭" );
		map.put( 2, "뿌링클" );
		map.put( 3, "허니콤보" );
		map.put( 4, "블랙알리오" );
		map.put( 5, "황금올리브" );
		map.put( 6, "자메이카 통다리" );
		
		
		// get(key) : 매개변수로 작성된 key와 매핑되는 value를 반환
		System.out.println(  map.get(3)  ); // 허니콤보
		System.out.println(  map.get(5)  ); // 황금올리브
		
		
		// 모든 요소 반복 접근하기 
		// 1. Iterator 
        // 2. 향상된 for문
	}

1) Iterator 로 모든 요소 반복 접근하기 

// 1. Iterator 사용
		
		// 1) map에서 key만 모아둔 집합(Set)을 얻어오는 메소드인 keySet() 호출
		Set<Integer> set =  map.keySet();
		
		// 2) 얻어온 set을 반복 접근하기 위한 Iterator로 변경
		Iterator<Integer> it = set.iterator();
	
		// 3) while문을 이용해서 반복 접근
		while(it.hasNext()) {
			
		// 4) 다음 접근한 key를 얻어와 변수에 저장
		int key = it.next();
			
		// 5) get(key) 메소드를 이용해서 value를 얻어와 출력
		System.out.printf("key : %d , value : %s \n", key , map.get(key) );
	}

 

2) 향상된 for문 사용

// 2. 향상된 for문 사용
		
	// 1) keySet() 메소드를 이용하여 key만 뽑아내기
	Set<Integer> set2 = map.keySet();
		
	// 2) 향상된 for문으로 반복 접근
	for( int key : set2  ) {
			
	// 3) get(key)로 value 얻어오기
	System.out.printf("key : %d , value : %s \n", key , map.get(key));
			
	}
반응형
저작자표시 비영리 변경금지 (새창열림)

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

[Java] 입출력 IO  (0) 2021.10.07
[JDBC] JDBC 개요, 객체 선언  (0) 2021.10.06
[Java] Collection_Set  (0) 2021.10.06
[Java] Collection_ List  (0) 2021.10.06
[Java] Scanner 주의사항/ .next()와 .nextline() 차이  (0) 2021.09.16
    'Backend/Java' 카테고리의 다른 글
    • [Java] 입출력 IO
    • [JDBC] JDBC 개요, 객체 선언
    • [Java] Collection_Set
    • [Java] Collection_ List
    Deeb
    Deeb

    티스토리툴바