`

TreeMap 排序

    博客分类:
  • Java
J# 
阅读更多

/*

比较函数类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"));
 }
}

0
0
分享到:
评论

相关推荐

    List和Treemap排序实例及效率对比

    本资源提供了List对对象中的属性和TreeMap, String>对键值排序,并针对100w条数据排序,对比List和TreeMap, String>排序的效率。个人认为排序效率对比可以相信,但也可能存在不科学之处,还请高手给与指点,多多包涵...

    java 中 TreeMap排序

    在Java编程语言中,`TreeMap`是一种基于红黑树数据结构实现的键值对容器,与`HashMap`不同,`TreeMap`自动按照键的自然顺序或者自定义的比较器进行排序。当我们需要存储的数据有特定的排序需求时,`TreeMap`便成为一...

    Java TreeMap排序算法实例

    Java TreeMap排序算法实例 Java TreeMap排序算法是Java中的一种常用的排序算法,主要用于对Map中的键值对进行排序。TreeMap排序算法的实现原理是基于红黑树数据结构的,通过将键值对插入到红黑树中,并对树中的节点...

    java中TreeMap排序的示例代码

    Java 中 TreeMap 排序的示例代码 Java 中的 TreeMap 排序是 Java 语言中一种常用的数据结构排序方法。TreeMap 是一个有序的 Map 集合,它可以根据键的自然顺序或自定义的比较器进行排序。 TreeMap 排序的优点 1. ...

    TreeMap按VALUE排序

    TreeMap按VALUE排序

    浅谈java中的TreeMap 排序与TreeSet 排序

    在Java编程语言中,`TreeMap` 和 `TreeSet` 是两种基于红黑树数据结构实现的集合类,它们都提供了自动排序的功能。本文将详细探讨 `TreeMap` 和 `TreeSet` 的排序机制以及如何自定义排序规则。 首先,`TreeMap` 是...

    Map排序

    2. TreeMap排序: TreeMap则在创建时就会根据键的自然顺序或自定义Comparator进行排序。 ```java Map, Integer> sortedMap = new TreeMap(new Comparator() { @Override public int compare(String s1, String s2...

    Treemap-4.1.2

    1. **排序**:TreeMap会根据键的自然顺序或者在创建时指定的比较器进行排序。如果键是可比较的对象(实现了Comparable接口),那么它们将按照自然顺序排序。否则,你需要提供一个Comparator对象来定义排序规则。 2....

    JAVA使用TreeMap对字符串进行排序

    JAVA使用TreeMap对字符串进行排序 JAVA中TreeMap是一种基于红黑树的实现,能够自动对key进行排序。下面将详细介绍如何使用TreeMap对字符串进行排序。 首先,需要了解TreeMap的特点。TreeMap是一种基于红黑树的实现...

    java treemap 学生信息

    `TreeMap`按照键的自然顺序或自定义比较器的顺序来排序键。在这里,我们可以使用学生的姓名作为键,因为姓名通常是唯一的,且方便比较。例如: ```java Map, Integer> studentScores = new TreeMap(); ...

    TreeMap源码

    - 按自然顺序排序:如果键实现了Comparable接口,TreeMap将按自然顺序排序。 - 自定义排序:用户可以通过提供自定义的Comparator对象来指定排序规则。 - keySet(),values()和entrySet():这三种方法分别返回TreeMap...

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    - **性能**:尽管`TreeMap`提供排序功能,但它的时间复杂度通常是O(log n),因此在某些情况下可能比`HashMap`和`LinkedHashMap`慢。 #### 4. HashTable `HashTable`是一种古老的`Map`实现,它的设计是为了确保线程...

    Java常见问题集锦 _Java常见问题集锦_

    TreeMap排序,键值对有序,适用于需要排序的场景。 5. **异常处理**: - **try-catch-finally**:用于捕获和处理异常,finally块保证了即使发生异常也能执行清理代码。 - **自定义异常**:通过继承`Exception`或...

    java用treemap统计单词出现的个数

    Java TreeMap是一个有序的Map实现,它可以根据对象的自然顺序或自定义的比较器对键进行排序。在本例中,我们使用TreeMap来统计一个句子或一个段落中单词出现的次数,并按照字母表顺序输出。 知识点1:Java TreeMap...

    TreeMap in Java_java_treemap_

    1. **排序**:默认情况下,`TreeMap`按照键的自然顺序进行排序,即键必须实现`Comparable`接口。如果键是自定义对象,需要重写`compareTo()`方法来定义排序规则。另外,可以通过传入自定义的`Comparator`给构造函数...

    treemap treeset hashset hashmap 简要介绍

    由于`TreeMap`内部维护了一个红黑树,因此它的键值对是按照键的自然顺序或自定义排序顺序排列的,这使得`TreeMap`非常适合需要保持键有序的场景。 ### TreeSet `TreeSet`是基于`TreeMap`实现的一个Set(集合)实现...

    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)

    - **特性**:TreeMap的键值对是有序的,可以通过键的自然顺序或自定义比较器进行排序,适合需要有序遍历的场景。 - **性能分析**:在插入和查找操作中,随着数据量的增加,TreeMap的性能逐渐下降,尤其是在大规模...

    java编写的命令行学生信息管理程序(用treemap)

    这个程序基于`Treemap`数据结构,这是一种在Java中由`java.util.TreeMap`类提供的有序映射,它允许以键值对的形式存储数据,并且能保持键的自然排序或者自定义排序。 `Treemap`的主要特点: 1. **有序性**:`...

Global site tag (gtag.js) - Google Analytics