BeginnersBook

  • Home
  • Java
    • Java OOPs
    • Java Collections
    • Java Examples
  • C
    • C Examples
  • C++
    • C++ Examples
  • DBMS
  • Computer Network
  • Python
    • Python Examples
  • More…
    • jQuery
    • Kotlin
    • WordPress
    • SEO
    • JSON
    • JSP
    • JSTL
    • Servlet
    • MongoDB
    • XML
    • Perl

Java 8 – Filter a Map by keys and values

Last Updated: September 11, 2022 by Chaitanya Singh | Filed Under: java

In the previous tutorial we learned about Java Stream Filter. In this guide, we will see how to use Stream filter() method to filter a Map by keys and Values.

Java 8 – Filter Map by Keys

import java.util.Map;
import java.util.HashMap;
import java.util.stream.Collectors;
public class Example {
   public static void main(String[] args) {
      Map<Integer, String> hmap = new HashMap<Integer, String>(); 
      hmap.put(11, "Apple"); 
      hmap.put(22, "Orange"); 
      hmap.put(33, "Kiwi");  
      hmap.put(44, "Banana"); 

      Map<Integer, String> result = hmap.entrySet() 
          .stream() 
          .filter(map -> map.getKey().intValue() <= 22) 
          .collect(Collectors.toMap(map -> map.getKey(), map -> map.getValue()));  
  
      System.out.println("Result: " + result);
   }
}

Output:

Result: {22=Orange, 11=Apple}

Java 8 – Filter Map by Values

import java.util.Map;
import java.util.HashMap;
import java.util.stream.Collectors;
public class Example {
   public static void main(String[] args) {
      Map<Integer, String> hmap = new HashMap<Integer, String>();
      hmap.put(11, "Apple");
      hmap.put(22, "Orange");
      hmap.put(33, "Kiwi");
      hmap.put(44, "Banana");

      Map<Integer, String> result = hmap.entrySet()
      .stream()
      .filter(map -> "Orange".equals(map.getValue()))
      .collect(Collectors.toMap(map -> map.getKey(), map -> map.getValue()));

      System.out.println("Result: " + result);
   }
}

Output:

Result: {22=Orange}

Java 8 – Filter Map by both Keys and Values

In this example we are filtering a Map by keys and values both. When we filter a Map like this we are joining both the conditions by AND (&&) logical operator. You can also place both the conditions in the single filter() method and join them using any logical operator such as OR (||), AND(&&) or NOT(!).

import java.util.Map;
import java.util.HashMap;
import java.util.stream.Collectors;
public class Example {
   public static void main(String[] args) {
      Map<Integer, String> hmap = new HashMap<Integer, String>();
      hmap.put(1, "ABC");
      hmap.put(2, "XCB");
      hmap.put(3, "ABB");
      hmap.put(4, "ZIO");

      Map<Integer, String> result = hmap.entrySet()
         .stream()
         .filter(p -> p.getKey().intValue() <= 2) //filter by key
         .filter(map -> map.getValue().startsWith("A")) //filter by value
         .collect(Collectors.toMap(map -> map.getKey(), map -> map.getValue()));

     System.out.println("Result: " + result);
   }
}

Output:

Result: {1=ABC}

Top Related Articles:

  1. How to loop LinkedList in Java
  2. Java 8 Stream Tutorial
  3. How to synchronize HashMap in Java with example
  4. Java 8 forEach method with example
  5. Java 8 Stream Filter with examples

Tags: Java8-Features

About the Author

I have 15 years of experience in the IT industry, working with renowned multinational corporations. Additionally, I have dedicated over a decade to teaching, allowing me to refine my skills in delivering information in a simple and easily understandable manner.

– Chaitanya

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Java Tutorial

Java Introduction

  • Java Index
  • Java Introduction
  • History of Java
  • Features of Java
  • C++ vs Java
  • JDK vs JRE vs JVM
  • JVM - Java Virtual Machine
  • First Java Program
  • Variables
  • Data Types
  • Operators

Java Flow Control

  • Java If-else
  • Java Switch-Case
  • Java For loop
  • Java while loop
  • Java do-while loop
  • Continue statement
  • break statement

Java Arrays

  • Java Arrays

OOPs Concepts

  • OOPs Concepts
  • Constructor
  • Java String
  • Static keyword
  • Inheritance
  • Types of inheritance
  • Aggregation
  • Association
  • Super Keyword
  • Method overloading
  • Method overriding
  • Overloading vs Overriding
  • Polymorphism
  • Types of polymorphism
  • Static and dynamic binding
  • Abstract class and methods
  • Interface
  • Abstract class vs interface
  • Encapsulation
  • Packages
  • Access modifiers
  • Garbage Collection
  • Inner classes
  • Static import
  • Static constructor

Java Exception Handling

  • Exception handling
  • Java try-catch
  • Java throw
  • Java throws
  • Checked and Unchecked Exceptions
  • Jav try catch finally
  • Exception Examples
  • Exception Propagation

Collections Framework

  • Collections in Java
  • Java ArrayList
  • Java LinkedList
  • Java Vector
  • Java HashSet
  • Java LinkedHashSet
  • Java TreeSet
  • Java HashMap
  • Java TreeMap
  • Java LinkedHashMap
  • Java Queue
  • Java PriorityQueue
  • Java Deque
  • Comparable interface
  • Comparator interface
  • Collections Interview Questions

MORE ...

  • Java Scanner Class
  • Java 8 Features
  • Java 9 Features
  • Java Conversion
  • Java Date
  • Java Multithreading
  • Java I/O
  • Java Serialization
  • Java Regex
  • Java AWT
  • Java Swing
  • Java Enum
  • Java Annotations
  • Java main method
  • Java Interview Q

Copyright © 2012 – 2025 BeginnersBook . Privacy Policy . Sitemap