Mega Code Archive

 
Categories / Java Tutorial / Collections
 

Use a comparator to sort accounts by last name

import java.util.Comparator; import java.util.Map; import java.util.Set; import java.util.TreeMap; class TComp implements Comparator<String> {   public int compare(String a, String b) {     int i, j, k;     String aStr, bStr;     aStr = a;     bStr = b;     i = aStr.lastIndexOf(' ');     j = bStr.lastIndexOf(' ');     k = aStr.substring(i).compareTo(bStr.substring(j));     if (k == 0) // last names match, check entire name       return aStr.compareTo(bStr);     else       return k;   } } class TreeMapDemo2 {   public static void main(String args[]) {     TreeMap<String, Double> tm = new TreeMap<String, Double>(new TComp());     tm.put("J D", new Double(3434.34));     tm.put("T S", new Double(123.22));     tm.put("J B", new Double(1378.00));     tm.put("T H", new Double(99.22));     tm.put("R S", new Double(-19.08));     Set<Map.Entry<String, Double>> set = tm.entrySet();     for (Map.Entry<String, Double> me : set) {       System.out.print(me.getKey() + ": ");       System.out.println(me.getValue());     }     System.out.println();     double balance = tm.get("A");     tm.put("A", balance + 1000);     System.out.println("A's new balance: " + tm.get("A"));   } }