Saw making your own sorting logic by implementing Comparable or Comparator? If not, click here. Now, how about sorting key-value pairs! Well, we need just a little code modification. See following code sample that sorts key-value pairs, first by key, then values. Look at the compareTo method implementation.
icici:50
icici:200
icici:300
icici:400
sbi:100
sbi:320
package collections; import java.util.SortedSet; import java.util.TreeSet; /** * Sort by key first and then by value */ public class KeyValueSortingApp { public static void main(String[] args) { SortedSet<KeyValuePair> sortedSet = new TreeSet<KeyValuePair>(); sortedSet.add(new KeyValuePair("icici",400)); sortedSet.add(new KeyValuePair("icici",200)); sortedSet.add(new KeyValuePair("icici",50)); sortedSet.add(new KeyValuePair("sbi",320)); sortedSet.add(new KeyValuePair("icici",300)); sortedSet.add(new KeyValuePair("sbi",100)); for (KeyValuePair pair : sortedSet) { System.out.println(pair.key + ":" + pair.value); } } } class KeyValuePair implements Comparable<KeyValuePair> { String key; int value; public KeyValuePair(String key, int value) { super(); this.key = key; this.value = value; } @Override public int compareTo(KeyValuePair o) { //sort by key, then value return key.equalsIgnoreCase(o.key) ? value-o.value : key.compareToIgnoreCase(o.key); } }Output:
icici:50
icici:200
icici:300
icici:400
sbi:100
sbi:320
No comments:
Post a Comment
Liked or hated the post? Leave your words of wisdom! Thank you :)