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"));
 }
}

相关文章推荐

TreeMap按VALUE排序

  • 2012年06月10日 02:15
  • 2KB
  • 下载

java-集合(6)-TreeSet,HashSet与TreeSet比较,HashMap,TreeMap只有在排序的功能时使用

本节主要介绍了TreeSet 的使用,要实现Comparable接口,还介绍了HashMap打印所有Key打印所有values,打印所有键值对Map.Entry,在根据键值对分别获得key和value...

TreeMap集合特点、排序原理

TreeMap特点(类似于TreeSet): 1.无序,不允许重复(无序指元素顺序与添加顺序不一致) 2.TreeMap集合默认会对键进行排序,所以键必须实现自然排序和定制排序中的一种 ...

TreeMap按照key排序

TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用Iterator遍历TreeMap时,得到的记录是排过序的。TreeMap 和 HashMap 用法大致相同,...

在java中使用TreeMap进行中文排序

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://onbus.blogbus.com/logs/11628621.html 最近遇到需要按一个mo...
  • memray
  • memray
  • 2012年04月28日 11:34
  • 3499

TreeMap中文排序

TreeMap的底层使用了红黑树来实现,像TreeMap对象中放入一个key-value 键值对时,就会生成一个Entry对象,这个对象就是红黑树的一个节点,其实这个和HashMap是一样的,一个En...
  • hiz1990
  • hiz1990
  • 2015年08月14日 15:20
  • 393

Java之项目用到类Objects,TreeMap排序简单分享

开心一笑【记者去采访一山区百岁老农: “老人家,你是吃什么东西才能保持长寿的啊?” 百岁老农: “我们这只能种玉米,平时也是以玉米为主食。” 记者: “那你现在最大的愿望是什么呢”。 百岁老农:...

Java TreeMap的排序(转)

TreeMap 和 HashMap 用法大致相同,但实际需求中,我们需要把一些数据进行排序; 以前在项目中,从数据库查询出来的数据放在List中,顺序都还是对的,但放在HashMap中,顺序就完全乱...

Java TreeMap的排序

Java TreeMap的排序 TreeMap 和 HashMap 用法大致相同,但实际需求中,我们需要把一些数据进行排序; 以前在项目中,从数据库查询出来的数据放在Li...

HashMap,LinkedHashMap 和 TreeMap 的排序研究

关于HashMap,LinkedHashMap 和 TreeMap放入值的默认排序从网上看了些文章, 今天想做个例子研究一下   MapTest.java package org.maptes...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TreeMap 排序
举报原因:
原因补充:

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