I\'m interested in sorting a list from a stream. This is the code I\'m using:
list.stream() .sorted((o1, o2)->o1.getItem().getValue().compareTo(o2.get
Collection> itemCollection = basket.values(); Iterator> itemIterator = itemCollection.stream().sorted(new TestComparator()).collect(Collectors.toList()).iterator(); package com.ie.util; import com.ie.item.Item; import java.util.Comparator; import java.util.Iterator; import java.util.Map; import java.util.Set; public class TestComparator implements Comparator> { // comparator is used to sort the Items based on the price @Override public int compare(Map o1, Map o2) { // System.out.println("*** compare method will be called *****"); Item item1 = null; Item item2 = null; Set itemSet1 = o1.keySet(); Iterator itemIterator1 = itemSet1.iterator(); if(itemIterator1.hasNext()){ item1 = itemIterator1.next(); } Set itemSet2 = o2.keySet(); Iterator itemIterator2 = itemSet2.iterator(); if(itemIterator2.hasNext()){ item2 = itemIterator2.next(); } return -item1.getPrice().compareTo(item2.getPrice()); } }
**** this is helpful to sort the nested map objects like Map> here i sorted based on the Item object price .