language/Java

[Java] hashmap

늉_늉 2020. 9. 29. 01:31

완주하지못한 선수 문제를 풀다가 Hashp맵에 대해 모르는 메소드가 있어서 공부하였다.

 

Hashmap에대한 코드

package com.jj.basic;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class A_Collection {

	public void HashMap01() {
		Map<String, Double> product = new HashMap<>();

		product.put("buldak", 3.9);
		product.put("apple", 2.4);
		product.put("water", 1.4);
		product.put("milk", 2.6);
		product.put("milk", 2.6);

		// get Value

		Double buldak = product.get("buldak");
		System.out.println("the Price of buldak: " + buldak);

		// 모든 key를 print

		// 키값만 출력할때 keySet()메소드를 사용

		Set<String> keys = product.keySet();
		// 순서가 필요없는 데이터를 hash table에 저장. Set 중에 가장 성능이 좋음
		// 객체(데이터)를 중복해서 저장할 수 없다.
//		for(String key : keys) {
//			System.out.println(key);
//		}

		// 람다식
		// (매개변수) -> {실행문}
		keys.forEach(key -> System.out.println(key));

		System.out.println("============================");

		// 모든 value print

		Collection<Double> values = product.values();

		values.forEach(value -> System.out.println(value));

		System.out.println();
		System.out.println("모든 key와 value를 같이 출력");

		Set<Map.Entry<String, Double>> entries = product.entrySet();

		for (Map.Entry<String, Double> entry : entries) {
			System.out.print("key: " + entry.getKey());
			System.out.println(", Value: " + entry.getValue());
		}

		// 람다 표현식
		System.out.println("람다표현식p2");
		product.forEach((a, b) -> {
			System.out.print("key: " + a);
			System.out.println(", value: " + b);
		});

		// key가 존재하는지 알고싶은경우

		// getOrDefault()

		System.out.println("getOrDefault");
		product.getOrDefault("Fish", 29.4);

	}

	public static void main(String[] args) {
		A_Collection a = new A_Collection();

		a.HashMap01();
	}

}

 

 

 

 

 

 

 

Hashmap의 getOrDefault메소드 코드 이다. 

없을경우 디폴트를 지정할수있다.

package com.jj.basic;

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

public class B_Collection실습 {
	
	
    public void Bsilsub() {
//    	String[] arr1 = {"aaa","bbb","ccc","aaa","bbb"};
//    	
//    	Map<String, Integer> map = new HashMap<String, Integer>();
//    	for(String a : arr1)map.put(a, map.getOrDefault(a, 0)+1);
//    	System.out.println(map);
    	
    	
    	
    	
    	String[] arr1 = {"mislav", "stanko", "mislav", "ana"};
    	String[] arr2 = {"stanko", "ana", "mislav"};

    	Map<String, Integer> map = new HashMap<String, Integer>();
    	//arr1에 있는걸 a에 넣고 map에 
    	for(String a : arr1) {
    		map.put(a, map.getOrDefault(a, 0) + 1);
    	}
    	System.out.println(map);
    }
    
    
    public static void main(String[] args) {
		B_Collection실습 b = new B_Collection실습();
		
		b.Bsilsub();
	}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

package com.jj.basic;

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

public class C_HashMap실습 {

	public void HashTest() {

		Map<String, Integer> map = new HashMap();

		map.put("a", 100);
		map.put("b", 200);
		map.put("c", 300);
		map.put("d", 400);

		// print map details
		System.out.println("HashMap: " + map.toString());

		// provide key whose value has to be obtained
		// and default value for the key. Store the
		// return value in k
		int k = map.getOrDefault("b", 500);

		// provide key whose value has to be obtained
		// and default value for the key. Store the
		// return value in k
		int j = map.getOrDefault("y", 500);
		// print the value of k returned by
		// getOrDefault(Object key, V defaultValue) method
		System.out.println("Returned Value: " + k);

		System.out.println("Returnd Value (y) : " + j);

	}

	public void HashTest2() {
		HashMap<String,Integer> map = new HashMap<>();
		
		String part[] = { "a", "b", "c", "d" };

		System.out.println(map.toString());
		
		for (String p : part) {
			map.put(p,map.getOrDefault(p, 0) +1 );
		}
		
		//이게 무슨뜻인지 알아는게 핵심이군...
		//put하는데 map에서 p가없으면 1
		
		
		System.out.println(map.toString());
	}

	public static void main(String[] args) {
		C_HashMap실습 c = new C_HashMap실습();
		
//		c.HashTest();
		
		c.HashTest2();
	}

}

 

 

 

 

 

getOrDefault 메소드의 사용법을 알아보았다.

 

package com.jj.basic;

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

public class C_HashMap실습 {
	
	public void HashTest() {
		
		Map<String,Integer> map = new HashMap();
		
		map.put("a", 100);
		map.put("b", 200);
		map.put("c", 300);
		map.put("d", 400);
		
		//print map details
		System.out.println("HashMap: "+map.toString());
		
        // provide key whose value has to be obtained 
        // and default value for the key. Store the 
        // return value in k 		
		int k = map.getOrDefault("b", 500);
		
        // provide key whose value has to be obtained 
        // and default value for the key. Store the 
        // return value in k
		int j = map.getOrDefault("y", 500);
        // print the value of k returned by 
        // getOrDefault(Object key, V defaultValue) method
		System.out.println("Returned Value: "+k);
		
		System.out.println("Returnd Value (y) : "+j);
		
	}

	public static void main(String[] args) {
		C_HashMap실습 c = new C_HashMap실습();
		c.HashTest();
	}

}

 

www.geeksforgeeks.org/hashmap-getordefaultkey-defaultvalue-method-in-java-with-examples/

 

HashMap getOrDefault(key, defaultValue) method in Java with Examples - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

 

 

 

 

 

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

getOrDefault  (0) 2022.03.02
제네릭이란?  (0) 2020.10.06
향상된 for문  (0) 2020.09.29