`

TreeMap用法 排序 示例

J# 
阅读更多
TreeMap类通过使用树来实现Map接口.TreeMap提供了按排序顺序存储关键字/值对的有效手段,同时允许快速检索。不像散列映射,树映射保证它的元素按照关键字升序排序。



import java.util.*;
class TreeMapDemo{
 public static void main(String[] args) 
 {
  //Creat a tree map
  TreeMap tm = new TreeMap();

  //Put elements to the map
  tm.put("Evan",new Double(12345.77));
  tm.put("Rose",new Double(78777));
  tm.put("Magic",new Double(-99.10));
  tm.put("Mike",new Double(100.00));
  tm.put("Sue",new Double(17.15));

  //Get a set of 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 Evan's account
  double balance = ((Double)tm.get("Evan")).doubleValue();
  tm.put("Evan",new Double(balance + 1000));
  System.out.println("Evan's new balance : " + tm.get("Evan"));
 }
}



*******************************************
比较函数类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排序的示例代码

    以下是使用 TreeMap 实现排序的示例代码: ```java import java.util.*; public class Screen implements Comparable<Screen> { private double size, price; @Override public int compareTo(Screen s) { ...

    Treemap-4.1.2

    TreeMap是一种数据结构,它是Java集合框架的一部分,位于`java.util`包中。它实现了一个映射接口,其中键...这些源代码也可能包含了一些示例或者API的使用说明,帮助开发者更好地理解和使用这个特定版本的TreeMap。

    java treemap 学生信息

    接下来,我们可以使用`TreeMap`提供的方法来求学生的总分。由于`TreeMap`是有序的,我们可以遍历所有键值对并累加分数: ```java int totalScore = 0; for (Map.Entry, Integer> entry : studentScores.entrySet())...

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

    如果没有提供比较器,`TreeMap` 默认会根据键的自然顺序进行排序,即实现了 `Comparable` 接口的键的 `compareTo()` 方法。 `TreeSet` 是一个有序的 `Set` 实现,它同样使用了红黑树结构。与 `TreeMap` 不同,`...

    java实现的map排序

    Java中实现Map排序的方式主要有两种,一种是使用TreeMap,另一种是使用SortedMap接口。HashMap内部元素是无序的,它不会记录插入顺序,也不保证顺序。如果需要有序的Map,可以使用TreeMap,它会根据键的自然顺序进行...

    treemap treeset hashset hashmap 简要介绍

    在代码示例中,可以看到`SmileCollections`类分别测试了`TreeSet`和`HashMap`的用法。对于`TreeSet`,虽然尝试添加了多个相同的`Student`对象,但由于`TreeSet`不允许重复元素,最终集合中只会保留一个元素。对于`...

    557.555.JAVA基础教程_集合-TreeMap两种添加方式的使用(557).rar

    本教程将详细讲解TreeMap的两种主要添加方式:使用put()方法和构造函数。 一、TreeMap的简介 TreeMap是基于红黑树数据结构实现的,这使得它在插入、删除和查找操作上的性能非常高效,通常为O(log n)。与HashMap不同...

    JCF(List、Set、Map)学习,实现了<key,value>按value排序噢

    若要根据特定规则排序List中的元素,可以使用`Collections.sort()`方法。 2. **Set**: 保证元素的唯一性,如HashSet和TreeSet。TreeSet基于红黑树实现,自动维护元素的排序。默认按照元素的自然顺序或自定义比较器...

    java map 集合 排序

    四、Map排序示例 1. 对于键排序: ```java for (Map.Entry, Integer&gt; entry : list) { System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()); } ``` 2. 对于值排序: ```java ...

    HASHMAP排序功能描述

    - 如果对HashMap进行大量的排序操作,考虑使用TreeMap,它默认按照key的自然顺序排序,也可以自定义Comparator。 **5. 结论** HashMap排序并不是HashMap本身的功能,而是通过其他手段实现的。根据实际需求,可以...

    java汉字笔画排序2源代码jar包

    在Java中,这可能涉及到对HashMap或TreeMap等数据结构的使用,以便快速地根据笔画信息查找和比较汉字。同时,为了减少内存占用,可能采用了更紧凑的数据表示方式,比如使用位运算存储笔画信息,或者优化了数据结构的...

    对map里面的value进行排序

    至于博客中的“源码”标签,可能涉及到对上述方法的底层实现原理进行分析,包括Stream API的内部工作方式以及TreeMap如何进行排序。而“工具”标签可能意味着博主还介绍了某些可以帮助处理Map排序的第三方库或实用...

    HashMap排序

    2. **使用TreeMap或Collections.sort()**:可以使用`TreeMap`或者`Collections.sort()`方法来对键进行排序。这里展示了两种不同的实现方式: - 使用`TreeMap`:创建一个`TreeMap`对象并传入`ByValueComparator`作为...

    Hashmap 通过对VALUE排序 源代码

    不过,以下是一个基本的示例,展示如何使用自定义Comparator对HashMap的值进行排序: ```java import java.util.*; public class ValueSortedHashMap { public static void main(String[] args) { Map, Integer&gt;...

    java 对象 排序

    理解这两个接口的用法,并熟练掌握`Collections.sort()`和`Arrays.sort()`的使用,是成为熟练Java开发者的必备技能。在实际编程中,灵活运用这些知识可以解决各种排序需求,提高代码的可读性和可维护性。

    java.Map的实现类及其使用(处理方案示例).md

    以下是这些实现类的详细分析及其使用方法。 #### HashMap `HashMap`是基于哈希表的Map接口实现。它不保证映射的顺序,特别是它不保证该顺序恒久不变。具体特点如下: - **键值快速查找**:`HashMap`提供基于哈希...

    Java Map 按照Value排序的实现方法

    - 由于Map本身不支持直接排序,我们可以先将Map的Entry转换为List,然后使用Collections.sort()方法进行排序。这适用于任何Map实现,包括HashMap和TreeMap。 - 示例代码: ```java List, Integer&gt;&gt; list = new ...

    通过分析_JDK_源代码研究_TreeMap_红黑树算法实现.docx

    - TreeSet 底层使用 TreeMap 作为其实际存储容器,这意味着 TreeSet 中的元素实际上是通过 TreeMap 的键值对形式存储的,其中键为元素本身,值通常不重要(如 `null`)。 3. **方法实现**: - 与 HashSet 类似,...

    排序比较器的使用

    接下来,我们可以使用`Collections.sort()`或`Arrays.sort()`方法,传入自定义的`Comparator`实例来对列表或数组进行排序: ```java List&lt;ChessMove&gt; moves = ...; // 获取棋步列表 Collections.sort(moves, new ...

    自己写的一个随机数的例子,采用hashmap排序

    标题中的“自己写的一个随机数的例子,采用hashmap排序”表明这是一个关于生成随机数并使用HashMap进行排序的程序示例。在这个例子中,我们将探讨如何生成随机数、HashMap的数据结构以及其排序机制。 首先,随机数...

Global site tag (gtag.js) - Google Analytics