DZone
Java Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Java Zone > Removing entries from a HashMap

Removing entries from a HashMap

A. Programmer user avatar by
A. Programmer
·
Sep. 28, 11 · Java Zone · Interview
Like (0)
Save
Tweet
79.86K Views

Join the DZone community and get the full member experience.

Join For Free

There are a few solutions for looping a HashMap, but one of the most elegant looks like below:

HashMap<String, Integer> map = new HashMap<String, Integer>();
  map.put("One", 1);
  map.put("Two", 2);
  map.put("Three", 3);
  map.put("Four", 4);
  map.put("Five", 5);
  map.put("Six", 6);
  map.put("Seven", 7);
  map.put("Eight", 8);
  map.put("Nine", 9);
  map.put("Ten", 10);
        
  for (Map.Entry<String, Integer> entry : map.entrySet()) {
       System.out.println(map.getKey() + "    " + map.getValue());      
  }
Now, that is great, but if you try to remove an entry while looping
  for (Map.Entry<String, Integer> entry : map.entrySet()) {
     if(entry.getValue() > 5){
        map.remove(entry.getKey());
      }
}

an java.util.ConcurrentModificationException will occur!
Solving this issue involves adding an Iterator which conforming to documentation “Iterators allow the caller to remove elements from the underlying collection during the iteration with well-defined semantics.” will allows us to call remove(). Therefore, here it is:
for(Iterator<Map.Entry<String,Integer>>it=map.entrySet().iterator();it.hasNext();){
     Map.Entry<String, Integer> entry = it.next();
     if (entry.getValue() > 5) {
          it.remove();
     }
 }
Done !

 

From http://e-blog-java.blogspot.com/2011/09/removing-entries-from-hashmap.html

Data structure

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Your Old Laptop Is Your New Database Server
  • Choosing Between GraphQL Vs REST
  • Synchronization Methods for Many-To-Many Associations
  • How to Determine if Microservices Architecture Is Right for Your Business

Comments

Java Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo