java集合TreeMap、Hashtable

简介: package ca.map;import java.util.Comparator;import java.util.Enumeration;import java.util.HashMap;import java.util.Hashtable;import java.util.LinkedList;import java.util.TreeMap;public cla
package ca.map;

import java.util.Comparator;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.LinkedList;
import java.util.TreeMap;

public class TreeMapDome {
    //1、TreeMap如不指定排序器,默认将按照key值进行升序排序,如果指定了排序器,则按照指定的排序器进行排序。
    //2、具体的排序规则,开发人员可以在int compare()方法中进行指定。
    public static void main(String[] args) {
        //不指定排序器
        TreeMap<String, String> stm =  new TreeMap<String, String>();
        stm.put("2", "22");
        stm.put("b", "BB");
        stm.put("1","11");
        stm.put("a", "AA");
        TreeMap<String, String> stm1 =  new TreeMap<String, String>();
        stm1.put("2", "22");
        stm1.put("b", "BB");
        stm1.put("1","11");
        stm1.put("a", "AA");
        System.out.println(stm1.equals(stm));
        System.out.println(stm==stm1);
        System.out.println(stm.hashCode());
        System.out.println(stm1.hashCode());
        System.out.println("TreeMapSortByDefault:"+stm1);
        System.out.println();
        TreeMap<String, String> stm2 = new TreeMap<String, String>(new Comparator<String>() {
            /* 
             * int compare(Object o1, Object o2) 返回一个基本类型的整型, 
             * 返回负数表示:o1 小于o2, 
             * 返回0 表示:o1和o2相等, 
             * 返回正数表示:o1大于o2。 
             */ 
            public int compare(String o1, String o2) {
              //指定排序器按照降序排列 
                return o2.compareTo(o1);
            }
        });
        stm2.put("2", "22");
        stm2.put("b", "BB");
        stm2.put("1","11");
        stm2.put("a", "AA");
        System.out.println("TreeMapSortByDefaul2t:"+stm2);
        Hashtable<String,String> htb = new Hashtable<String, String>();
        htb.put("1", "aa");
        htb.put("2", "bb");
        htb.put("3", "cc");
        System.out.println("hash table:"+htb);
        System.out.println();
        //参数initialCapacity是Hashtable的初始容量,它的值应大于0。loadFactor又称装载因子,是一个0.0到0.1之间的float型的浮点数。它是一个百分比,表明了哈希表何时需要扩充
        Hashtable<String, String> hashTB = new Hashtable<String, String>(5, 0.7f);
        hashTB.put("1", "beijing");
        hashTB.put("2", "tianjing");
        hashTB.put("3", "lanzhou");
        Enumeration enumer = hashTB.elements();
        while(enumer.hasMoreElements()){
            String s = (String) enumer.nextElement();
            System.out.print(s+"  ");
        }
    }
}

输出为:

true
false
7398
7398
TreeMapSortByDefault:{1=11, 2=22, a=AA, b=BB}


TreeMapSortByDefaul2t:{b=BB, a=AA, 2=22, 1=11}
hash table:{3=cc, 2=bb, 1=aa}


beijing  lanzhou  tianjing  



目录
相关文章
|
6天前
|
存储 Java
Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。
【10月更文挑战第19天】本文详细介绍了Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。HashMap以其高效的插入、查找和删除操作著称,而TreeMap则擅长于保持元素的自然排序或自定义排序,两者各具优势,适用于不同的开发场景。
17 1
|
9天前
|
存储 安全 Java
Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
【10月更文挑战第17天】Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
26 2
|
9天前
|
存储 Java 开发者
Java Map实战:用HashMap和TreeMap轻松解决复杂数据结构问题!
【10月更文挑战第17天】本文深入探讨了Java中HashMap和TreeMap两种Map类型的特性和应用场景。HashMap基于哈希表实现,支持高效的数据操作且允许键值为null;TreeMap基于红黑树实现,支持自然排序或自定义排序,确保元素有序。文章通过具体示例展示了两者的实战应用,帮助开发者根据实际需求选择合适的数据结构,提高开发效率。
31 2
|
9天前
|
存储 缓存 安全
HashMap VS TreeMap:谁才是Java Map界的王者?
HashMap VS TreeMap:谁才是Java Map界的王者?
36 2
|
10天前
|
存储 Java
深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
27 3
|
10天前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
20 2
|
6天前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
34 5
|
6天前
|
存储 Java API
详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
【10月更文挑战第19天】深入剖析Java Map:不仅是高效存储键值对的数据结构,更是展现设计艺术的典范。本文从基本概念、设计艺术和使用技巧三个方面,详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
24 3
|
6天前
|
存储 缓存 安全
在Java的Map家族中,HashMap和TreeMap各具特色
【10月更文挑战第19天】在Java的Map家族中,HashMap和TreeMap各具特色。HashMap基于哈希表实现,提供O(1)时间复杂度的高效操作,适合性能要求高的场景;TreeMap基于红黑树,提供O(log n)时间复杂度的有序操作,适合需要排序和范围查询的场景。两者在不同需求下各有优势,选择时需根据具体应用场景权衡。
13 2
|
6天前
|
存储 安全 Java
Java Map新玩法:深入探讨HashMap和TreeMap的高级特性
【10月更文挑战第19天】Java Map新玩法:深入探讨HashMap和TreeMap的高级特性,包括初始容量与加载因子的优化、高效的遍历方法、线程安全性处理以及TreeMap的自然排序、自定义排序、范围查询等功能,助你提升代码性能与灵活性。
14 2