API学习HashTable
来源:互联网 发布:《网络基础知识》文档 编辑:程序博客网 时间:2024/06/11 02:09
package com.wonders.week01.collection;import java.util.Collection;import java.util.Enumeration;import java.util.HashMap;import java.util.Hashtable;import java.util.Map;import java.util.Map.Entry;import java.util.Set;/** * JDK1.7 * HashTable * (1)这个类实现了一个哈希表,它将键映射到值。任何非空对象都可以作为键或值使用 * (2)为了从哈希表中恢复和存储对象,该对象必须重写hashCode和equals方法 * (3)有两个参数影响着hashtable:初始容量和负载因子,初始容量代表的是在哈希表中可以存储的数量, * 初始化容量仅仅是当hashtable被创建时的一个容量大小。 * (4)一般来说,默认的负载因子大小是0.75,在时间和空间的消耗方面提供了一个很好的平衡, * (5)在查找中,更高的值会增加时间复杂度但是会降低空间的的消耗。 * (6)线程安全的类 * @author liyongyong * */public class HashTableTest { public static void main(String[] args) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put("aaa", 1); map.put("bbb", 2); map.put("ccc", 3); Hashtable<String , Integer> numbers = new Hashtable<String, Integer>(); //在hashtable中的key中映射value,其中key和value都不可以为null numbers.put("one", 1); numbers.put("two", 2); numbers.put("three", 3); //返回hashtable中key的个数 int size = numbers.size(); System.out.println("numbers集合中的元素个数为: " + size); //判断是否在hashtable中不存在键值对的映射 boolean flag = numbers.isEmpty(); System.out.println("如果在Hashtable中存在键值对映射,返回true,否则返回false : " + flag); //返回hashtable中的键 Enumeration<String> key = numbers.keys(); while (key.hasMoreElements()) { String string = (String) key.nextElement(); System.out.print(string + " "); } System.out.println(); //返回hashtable中的值 Enumeration<Integer> value = numbers.elements(); while (value.hasMoreElements()) { Integer integer = (Integer) value.nextElement(); System.out.print( integer + " "); } System.out.println(); //判断是否有键值对存在于hashtable中,参数是一个对象类型, //传入的参数应该是value而不是key boolean exist = numbers.contains(1); System.out.println("是否存在键值对 :" + exist) ; //如果在hashtable中有一个或者多个key都映射了这个value,则返回true boolean containsValue = numbers.containsValue(2); System.out.println("存在映射 :" + containsValue); //如果这个具体的对象是hashTable中的一个key,则返回true. boolean containsKey = numbers.containsKey("one"); System.out.println("存在这个key : " + containsKey); //返回在hashtable中键所映射的value,如果这个key在hashtable中不存在,则返回null Integer v1 = numbers.get("one"); System.out.println("该键所映射的值是: " + v1); //从hashtable中根据key移除相关的键值对,如果key在hashtable中不存在,则这个方法什么也不会做 numbers.remove("one"); Enumeration<Integer> v = numbers.elements(); System.out.print("remove以后的结果:"); while (v.hasMoreElements()) { Integer integer = (Integer) v.nextElement(); System.out.print(integer + " "); } System.out.println(); //把一个map集合中的所有键值对都添加到具体的hashtable集合中 numbers.putAll(map); Enumeration<String> v2 = numbers.keys(); System.out.print("添加map以后的所有key:"); while (v2.hasMoreElements()) { String str = (String) v2.nextElement(); System.out.print( str + " "); } Enumeration<Integer> v3 = numbers.elements(); System.out.print("添加map以后的所有value:"); while (v3.hasMoreElements()) { Integer integer = (Integer) v3.nextElement(); System.out.print( integer + " "); } System.out.println(); //清除hashtable中的所有key //numbers.clear(); //创建一个hashtable的浅克隆,hashtable自身的所有结构层次都会被复制 //但是key和value是不会被复制的。返回值类型是一个对象 numbers.clone(); //返回hashtable中的所有key,以set集合的形式返回 Set<String> set = numbers.keySet(); for (String string : set) { System.out.print(string + " "); } System.out.println(); //以键值对的形式返回hashtable中的键值对,等号的左边是key,等号右边是value Set<Entry<String, Integer>> sm = numbers.entrySet(); for (Entry<String, Integer> entry : sm) { System.out.print( entry + " "); } System.out.println(); Collection<Integer> res = numbers.values(); for(Integer result : res){ System.out.print(result + " "); } }}
阅读全文
1 0
- API学习HashTable
- HashTable学习
- JAVA API系列----Hashtable类
- PHP源码分析-HashTable API
- PHP源码分析-HashTable API
- Properties与HashTable----API分析
- HashTable学习1
- HashTable学习2
- memcached源码学习-hashtable
- memcached源码学习-hashtable
- hashTable的学习
- 对Hashtable的学习
- Hashtable源码学习
- Hashtable 、ConcurrentHashMap源码学习
- Java之HashTable学习
- C#学习笔记五-HashTable
- 比较学习HashMap和Hashtable
- Hashtable, ArrayList, List, Dictionary学习
- 依赖注入(C#)
- linaCharts开发笔记:three.js物体变换
- Android内存中创建原图的副本
- 【ActiveMQ】概述
- import reload from...reload的区别
- API学习HashTable
- 安卓中杀进程的方法
- poj 3494 Largest Submatrix of All 1’s
- ElasticSearch的JVM浅谈(转)
- Java读取图像metadata信息
- vue 分页组件及props传参
- java分层架构中各层级的调用关系
- Dijkstra+堆优化模板
- POJ1330Nearest Common Ancestors