/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { { List<List<String>> data = new ArrayList<>(); List<String> list1 = new ArrayList<>(); List<String> list2 = new ArrayList<>(); List<String> list3 = new ArrayList<>(); list1.add("Siva"); list1.add("20"); list1.add("Hyd"); list1.add("TA"); list1.add("India"); list2.add("Suresh"); list2.add("22"); list2.add("Banglore"); list2.add("KA"); list2.add("India"); list3.add("Ramesh"); list3.add("24"); list3.add("Chennai"); list3.add("TN"); list3.add("India"); data.add(list1); data.add(list2); data.add(list3); List<List<String>> listSorted1 = data.stream() .sorted((x, y) -> { int res = x.get(0).compareTo(y.get(0)); if (res != 0) return res; if (res != 0) return res; return x.get(2).compareTo(y.get(2)); }) .collect(Collectors.toList()); } }
Standard input is empty
Sorting without mapping: [[Ramesh, 24, Chennai, TN, India], [Siva, 20, Hyd, TA, India], [Suresh, 22, Banglore, KA, India]]