This is my class
public class Person {
int id;
int salary;
Map<String,List<String>> house;
//getter and setters omitted for brevity
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String,List<String>> map =new HashMap<>();
map.put("KEY_1",Arrays.asList("3") ) ;
map.put("KEY_2",Arrays.asList("House_1") ) ;
map.put("KEY_3",Arrays.asList("House_13") ) ;
Map<String,List<String>> map2 =new HashMap<>();
map2.put("KEY_1",Arrays.asList("1") ) ;
map2.put("KEY_2",Arrays.asList("House_2") ) ;
map2.put("KEY_3",Arrays.asList("House_22") ) ;
Map<String,List<String>> map3 =new HashMap<>();
map3.put("KEY_1",Arrays.asList("2") ) ;
map3.put("KEY_2",Arrays.asList("House_3") ) ;
map3.put("KEY_3",Arrays.asList("House_33") ) ;
Person p1 = new Person(1,1000, map );
Person p2 = new Person(2,2000, map2 );
Person p3 = new Person(3,3000, map3 );
List<Person> personList = new ArrayList();
personList.add(p1);
personList.add(p2);
personList.add(p3);
for (Person p : personList)
{
for(Entry<String, List<String>> personMap : p.getHouse().entrySet() )
{
System.out.println( "value of key is -->" + personMap.getKey() + " value is " + personMap.getValue() );
}
}
}
}
My requirement is the sort the data first on the basis KEY_1 value then if the value of KEY_2 ? How can i write a comparator or do comparison for this?
Current O/p is
value of key is -->KEY_1 value is [3]
value of key is -->KEY_3 value is [House_13]
value of key is -->KEY_2 value is [House_1]
value of key is -->KEY_1 value is [1]
value of key is -->KEY_3 value is [House_22]
value of key is -->KEY_2 value is [House_2]
value of key is -->KEY_1 value is [2]
value of key is -->KEY_3 value is [House_33]
value of key is -->KEY_2 value is [House_3]
But my expected output is
value of key is -->KEY_1 value is [3] value of key is -->KEY_3 value is [House_13] value of key is -->KEY_2 value is [House_1]
value of key is -->KEY_1 value is [2] value of key is -->KEY_3 value is [House_33] value of key is -->KEY_2 value is [House_3]
value of key is -->KEY_1 value is [1] value of key is -->KEY_3 value is [House_22] value of key is -->KEY_2 value is [House_2]
i.e if object having key_1 has highest value it should come first and then we need to sort it on the basis of KEY_2 too.