Thursday, March 4, 2021

How to get value from Map using Key in Java8

 In Java8, using below code can get value from Map using key:

package com.puneet.java8examples;

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

public class GetValueFromMap {

	public static void main(String[] args) {
		
		Map<Integer,String> carMap = new HashMap<>();
		carMap.put(1, "Honda");
		carMap.put(2, "Hundai");
		carMap.put(3, "Renault");
		carMap.put(4, "Yamaha");
		
		//In Java8 - fetch value from map using key
		// Fetch car model basis of key
		Integer key = 2;
		Optional<String> carModel = carMap.entrySet().stream().
				filter(e-> e.getKey()==key).map(Map.Entry::getValue).findFirst();
		
		//without using map function, can directly use findFirst() function
		String carModel2 = carMap.entrySet().stream().
				filter(e-> e.getKey()==key).findFirst().get().getValue();
		
		System.out.println("Car_key:"+key+" Car_Model:"+ carModel2);
		if (carModel.isPresent()) {
                    System.out.println("Car_key:"+key+" Car_Model:"+ carModel.get());
                }
		
		//In Java8 - fetch key from map using value
		// Fetch key basis of car model
		String carName = "Honda";
		Optional<Integer> carKey = carMap.entrySet().stream().
				filter(e-> e.getValue()==carName).map(Map.Entry::getKey).findFirst();
		
		//without using map function, can directly use findFirst() function
		Integer carKey2 = carMap.entrySet().stream().
						filter(e-> e.getValue()==carName).findFirst().get().getKey();
		System.out.println("\nCar_Model:" + carName + " Car_key:"+ carKey2);
		if (carKey.isPresent()) {
                    System.out.println("\nCar_Model:" + carName + " Car_key:"+ carKey.get());
                }
	}

}
Output:
Car_key:2 Car_Model:Hundai

Car_key:2 Car_Model:Hundai

Car_Model:Honda Car_key:1

Car_Model:Honda Car_key:1

How to convert Map to two List in Java8

 Below code can be used for converting Map into two List in Java8 :


package com.puneet.java8examples;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class GetValueFromMapUsingKey {

	public static void main(String[] args) {
		
		Map<Integer,String> carMap = new HashMap<>();
		carMap.put(1, "Honda");
		carMap.put(2, "Hundai");
		carMap.put(3, "Renault");
		carMap.put(4, "Yamaha");
		
		//In Java8 - convert map into two list
		List<String> valueList = new ArrayList();
		
		// Convert Map keys to a List and add values to valueList during processing
		List<Integer> keyList = carMap.entrySet().stream().peek(e->valueList.add(e.getValue())).
				map(e->e.getKey()).collect(Collectors.toList());
		System.out.println("Car keys:");
		keyList.forEach(System.out::println);
		System.out.println("\nCar values:");
		valueList.forEach(System.out::println);
		
	}

}
Output:
Car keys:
1
2
3
4

Car values:
Honda
Hundai
Renault
Yamaha

How to convert Map to List in Java8

 Below is the code snippet that can be used for converting map to list in java8:


package com.puneet.java8examples;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class ConvertMapToList {

	public static void main(String[] args) {
		
		Map<Integer,String> carMap = new HashMap<>();
		carMap.put(1, "Honda");
		carMap.put(2, "Hundai");
		carMap.put(3, "Renault");
		carMap.put(4, "Yamaha");
		
		//Before Java 8
		// Convert Map values to a List
		List<String> valueListBeforeJava8 = new ArrayList(carMap.values());
		System.out.println("Car values:" + valueListBeforeJava8);
		
		// Convert Map keys to a List
		List<Integer> keyListBeforeJava8 = new ArrayList(carMap.keySet());
		System.out.println("\nCar keys:" + keyListBeforeJava8);
		
		//In Java8
		// Convert Map values to a List
		List<String> valueList = carMap.values().stream().collect(Collectors.toList());
		System.out.println("\nCar values:");
		valueList.forEach(System.out::println);
		
		// Convert Map keys to a List
		List<Integer> keyList = carMap.keySet().stream().collect(Collectors.toList());
		System.out.println("\nCar keys:");
		keyList.forEach(System.out::println);
		
	}

}

 Output:

Car values:[Honda, Hundai, Renault, Yamaha]

Car keys:[1, 2, 3, 4]

Car values:
Honda
Hundai
Renault
Yamaha

Car keys:
1
2
3
4

How to get value from Map using Key in Java8

 In Java8, using below code can get value from Map using key: package com.puneet.java8examples; import java.util.HashMap; import java.u...