TreeMap 排序

原创 2006年06月14日 15:34:00

/*

比较函数类TComp比较两个包含姓和名的字符串。它首先比较姓,具体是这样做的,首先寻找每一个字符串中最后一个空格的下标,然后比较从这个位置开始的每一个元素的子字符串。当两个字符串中姓完全相等时,再比较两个名。这样就形成了先按姓排序,在姓相同的情况下再按名字进行排序的树型映射。

*/

//Use a comparator to sort accounts by last name.
import java.util.*;
//Compare last whole words in two strings.
class  TComp implements Comparator{
 public int compare(Object a,Object b){
  int i,j,k;
  String strA,strB;

  strA = (String)a;
  strB = (String)b;

  //find index of beginning of last name
  i = strA.lastIndexOf(' ');
  j = strB.lastIndexOf(' ');
  k = strA.substring(i).compareTo(strB.substring(j));
  if(k==0)  //last name match,check entire name
   return strA.compareTo(strB);
  else
   return k;

 }
 //no need to override equals
}
public class TreeMapDemo2{
 public static void main(String[] args)
 {
  //Create a tree map.
  TreeMap tm = new TreeMap(new TComp());

  //Put elements to the map.
  tm.put("Sue Yuan",new Double(17.15));
  tm.put("Jiahui Sheng",new Double(78777));
  tm.put("Huajiang Chen",new Double(12345.77));
  tm.put("Magic Ya",new Double(-99.10));
  tm.put("Quanbing Chen",new Double(100.00));

  //Get a set of the entries.
  Set set = tm.entrySet();

  //Get an iterator.
  Iterator i = set.iterator();

  //Display elements.
  while(i.hasNext()){
   Map.Entry me = (Map.Entry)i.next();
   System.out.println(me.getKey() + ": ");
   System.out.println(me.getValue());
  }
  System.out.println();

  //Deposit 1000 into Jiahui Sheng's account
  double balance = ((Double)tm.get("Jiahui Sheng")).doubleValue();
  tm.put("Jiahui Sheng",new Double(balance + 1000));
  System.out.println("Jiahui Sheng's new balance : " + tm.get("Jiahui Sheng"));
 }
}

Java TreeMap 升序|降序排列

import java.util.Comparator; import java.util.TreeMap; public class Main { public static void main(...
  • hao5743
  • hao5743
  • 2014年10月26日 15:27
  • 21545

TreeMap按value值进行排序

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util...
  • weicongjing
  • weicongjing
  • 2009年12月20日 16:29
  • 18158

TreeMap的排序及比较器问题

本文介绍了Map的按值排序以及由此引出的比较器等的问题,深入探讨了Comparator及Comparable两个比较器的不同之处,希望给他人以帮助。...
  • wthfeng
  • wthfeng
  • 2016年07月17日 23:03
  • 9556

使用比较器对Treemap按照value进行排序

使用比较器对Treemap按照value进行排序(value值只有是string类型时才适用)方式一public class MapSortDemo { public static void m...
  • a_sid
  • a_sid
  • 2017年05月18日 10:42
  • 833

对TreeMap按照value进行排序

public class Testing {          public static void main(String[] args) {              HashMap ma...
  • u011734144
  • u011734144
  • 2016年08月31日 13:56
  • 5876

使用比较器对Treemap按照key进行排序

使用比较器对Treemap按照key进行排序(不管value是什么类型的都可以进行排序)public class MapSortDemo { public static void main(St...
  • a_sid
  • a_sid
  • 2017年05月18日 10:33
  • 1003

TreeMap利用Comparator接口排序

/*TreeMap利用Comparator接口排序 需求:对学生对象的年龄进行升序排序。 因为数据是以键值对形式存在的。 所以要使用可以排序的Map集合。TreeMap */ import java....
  • blacop
  • blacop
  • 2016年07月15日 09:32
  • 731

使用TreeMap按值排序遇到的问题

如果我们需要一个有序的Map,我们会使用TreeMap进行存储。TreeMap默认是按照key值升序进行排序的,如数字、ASCII。        如果我们需要对TreeMap按值进行排序的话,可以...
  • u012434091
  • u012434091
  • 2014年07月29日 19:56
  • 1387

Java<TreeMap按key排序与按照value排序>

TreeMap默认按照key递增排序 public class Main { public static void main(String[] args) { TreeMap t...
  • Gpwner
  • Gpwner
  • 2017年06月11日 08:41
  • 2251

TreeMap按照value进行排序

TreeMap底层是根据红黑树的数据结构构建的,默认是根据key的自然排序来组织(比如integer的大小,String的字典排序)。所以,TreeMap只能根据key来排序,是不能根据value来排...
  • liuxiao723846
  • liuxiao723846
  • 2016年01月04日 10:53
  • 6736
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TreeMap 排序
举报原因:
原因补充:

(最多只允许输入30个字)