본문 바로가기

JAVA/쓸만한 코드

HashMap 코드

  "사과" : "apple"
  key : value -> 1pair == web json key:value
  Tree 구조
  key 는 중복되지 않는다
  
  List : 선형 구조   o-o-o-o-o-o-o 
  
  TreeMap = HashMap + Sorting(key)

 

 

 

 

선언

		HashMap<Integer, String> hMap = new HashMap<Integer, String>();

추가

		// 추가	 key  value 
		hMap.put(111, "백십일");
		hMap.put(222, "이백이십이");
		hMap.put(333, "삼백삼십삼");

value확인

		// value 취득
		String value = hMap.get(222);
		System.out.println("value:" + value);
        
        or
        
		if(hMap.containsKey(333)) {
			value = hMap.get(333);
			System.out.println("value:" + value);
		}

삭제

		// 삭제
		String val = hMap.remove(222);

검색

		// 검색
		// 있다/없다
		boolean b = hMap.containsKey(new Integer(333));
		System.out.println("b = " + b);

수정

		// 수정
		hMap.put(111, "100 + 10 + 1");		
		hMap.replace(222, "200 + 22");	

모두 출력

0 ~ n-1 가 아님 -> 순서대로 데이터가 저장되어 있진 않다 (Tree 형식)

->> Iterator 사용

 

->> Map에 값을 전체 출력하기 위해서는 entrySet(), keySet() 메소드를 사용하면 되는데 entrySet() 메서드는 key와 value의 값이 모두 필요한 경우 사용하고, keySet() 메서드는 key의 값만 필요한 경우 사용합니다.

       Iterator 인터페이스를 사용할 수 없는 컬렉션인 Map에서 Iterator 인터페이스를 사용하기 위해서는 Map에 entrySet(), keySet() 메소드를 사용하여 Set 객체를 반환받은 후 Iterator 인터페이스를 사용하시면 됩니다.

 

->>hasNext()  문자열 있는지 검사

->>next() 문자열 반환

		// key값을 모두 취득	=> iterator
		Iterator<Integer> it = hMap.keySet().iterator();	
		while(it.hasNext()) {
			Integer key = it.next(); 
			System.out.println("key:" + key);
			
			String _value = hMap.get(key);
			System.out.println("value:" + _value);
		}
		

 

 


 

 

 

class입력

		HashMap<Integer, MyData> dMap = new HashMap<Integer, MyData>();
		
		// 추가
		dMap.put(1001, new MyData(1, "홍길동"));
		dMap.put(1002, new MyData(2, "일지매"));
		dMap.put(1003, new MyData(3, "춘향이"));
		dMap.put(1004, new MyData(4, "정수동"));
		
		// 삭제
		dMap.remove(3);
		
		// 검색
		boolean ans = dMap.containsKey(1001);
		System.out.println("ans = "+ans);
		
		// 수정
		dMap.replace(1004, new MyData(4, "몽룡이"));
		System.out.println();
		// 출력
		Iterator<Integer> is = dMap.keySet().iterator();	
		while(is.hasNext()) {
			Integer key = is.next(); 
			System.out.println("key:" + key);
			
			MyData _value = dMap.get(key);
			System.out.println("value:" + _value);
		}
		
	}

dto

public class MyData {

	private int number;
	private String name;
	
	public MyData() {
	}
	public MyData(int number, String name) {
		super();
		this.number = number;
		this.name = name;
	}
	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "MyData [number=" + number + ", name=" + name + "]";
	}
}

'JAVA > 쓸만한 코드' 카테고리의 다른 글

stack//스택// 원리 코드  (0) 2020.06.10
Map//Baseball 야구멤버  (0) 2020.06.09
DTO 기본형  (0) 2020.06.04
로봇, 배열별 메서드를 다른 메서드에서 if로 나눠담아 실행  (0) 2020.06.04
함수//입력받고 loop  (0) 2020.06.02