1

I have a hashmap with 2 objects, Parcel and Deliverer. Both have a getName function. I want to loop the hashmap and print there names like (Parcel.getName(), Deliverer.getName()).

for (Map.Entry<Parcel, Deliverer> entry : deliveryList.entrySet()) {
                for (Parcel key: entry) {
                    System.out.println("Package : " + key.getName());
                    for (Deliverer deliverer: entry) {
                        System.out.println("- Deliverer : " + deliverer.getName());
                        continue;
                    }
                }
            }
Kaibo
  • 111
  • 1
  • 4
Ties
  • 71
  • 5
  • See if this helps? https://stackoverflow.com/questions/1066589/iterate-through-a-hashmap – jared Nov 01 '19 at 09:40

3 Answers3

3

Not any different from @funkyjelly. An upvote :)

Same thing, just with Java8 collection foreach syntax.

deliveryList.entrySet().forEach( entry -> 
           System.out.println("Package : " + entry.getKey().getName());
           System.out.println("Deliverer: " + entry.getValue().getName());
);
www.hybriscx.com
  • 1,129
  • 4
  • 22
3

Another way can be using passing BiConsumer to forEach directly

deliveryList.forEach((key, value) -> System.out.println("Package: " + key.getName() + "- Deliver: " + value.getName()))
Deb
  • 2,922
  • 1
  • 16
  • 32
2

Once you have the map entries you'd only need to invoke getKey() to get Parcel and getValue() to get Deliverer for each entry. Hence it should be like this :

for (Map.Entry<Parcel, Deliverer> entry : deliveryList.entrySet()) {
    System.out.println("Package : " + entry.getKey().getName() + 
          "- Deliverer : " + entry.getValue().getName());
}
nullPointer
  • 4,419
  • 1
  • 15
  • 27