当前位置: 首页 > news >正文

广东建设信息网站首页龙泉驿建设局网站

广东建设信息网站首页,龙泉驿建设局网站,做cra需要关注的网站,手机兼职的正规平台有哪些Hashtable Hashtable是原始的java.util的一部分#xff0c;属于一代集合类#xff0c;是一个Dictionary具体的实现 。Java1.2重构的Hashtable实现了Map接口#xff0c;因此#xff0c;Hashtable现在集成到了集合框架中。它和HashMap类很相似。 Hashtable与HashMap的区别 …Hashtable Hashtable是原始的java.util的一部分属于一代集合类是一个Dictionary具体的实现 。Java1.2重构的Hashtable实现了Map接口因此Hashtable现在集成到了集合框架中。它和HashMap类很相似。 Hashtable与HashMap的区别 1Hashtable属于一代集合继承了Dictionary类也实现了Map接口HashMap属于二代集合实现与Map接口没有与Dictionary类产生关系 2Hashtable支持iterator遍历Map接口中的也支持Enumeration遍历DictionaryHahsMap只支持iterator遍历 3Hashtable与HashMap底层都是采用hash表这种数据结构JDK8对HashMap进行了优化引入红黑树但并没有对Hashtable进行优化 4HashMap默认的数组大小是16Hashtable则是11两者的负载因子都是0.75并且都允许传递初始化的数组大小和负载因子 5HashMap对null key和null value进行了特殊处理可以存储null key和null valueHashtable则不能存储null key和null value 6当HashMap存储的元素数量数组容量*负载因子数组扩容至原来的2倍Hashtable则是2倍1 7HashMap在添加元素时使用的是元素本身的hash算法 ^ (元素本身的hash算法 16)而Hashtable则是直接采用元素本身的hash算法 Tips代表有符号位移代表无符号位移 8HashMap在使用foreach迭代时不能对元素内容进行增删否则触发并发修改异常。Hahstable中支持Enumeration迭代使用Enumeration迭代元素时可以对集合进行增删操作 9Hashtable是线程安全的效率低安全性高HashMap是线程不安全的效率高安全性低 1测试存储Null key和Null value package com.dfbz.hashtable;import java.util.HashMap; import java.util.Hashtable;/*** author lscl* version 1.0* intro:*/ public class Demo02_HashMap与Hashtable的区别_null问题 {public static void main(String[] args) {HashMapInteger, String hashMap new HashMap();/*HashMap对null key和null value并且,HashMap对null key做了特殊处理,HashMap永远将Null key存储在第0位数组上*/hashMap.put(1, null);hashMap.put(null, 大闸蟹);System.out.println(hashMap); // {null大闸蟹, 1null}}public static void test1(){HashtableInteger, String hashtable new Hashtable();// Hashtable存储null key和null value的时候会出现空指针异常: Exception in thread main java.lang.NullPointerExceptionhashtable.put(1, null);hashtable.put(null, 大闸蟹);} }2测试并发修改异常问题 package com.dfbz.hashtable;import java.util.Enumeration; import java.util.HashMap; import java.util.Hashtable; import java.util.Set;/*** author lscl* version 1.0* intro:*/ public class Demo03_HashMap与Hashtable的区别_并发修改问题 {public static void main(String[] args) {HashtableInteger, String hashtable new Hashtable();hashtable.put(1, 拌粉);hashtable.put(2, 汤粉);hashtable.put(3, 炒粉);hashtable.put(4, 泡粉);EnumerationInteger keys hashtable.keys();while (keys.hasMoreElements()) {Integer key keys.nextElement();if (key 2) {/*Hashtable在使用Enumeration遍历时,允许对集合进行增删操作注意: Hashtable使用foreach迭代也不能对元素进行增删操作*/hashtable.put(5, 扎粉); // hashtable.remove(3);}}System.out.println(hashtable);}/*** hashMap在使用foreach迭代时不允许对集合进行增删等操作*/public static void test1() {HashMapInteger, String hashMap new HashMap();hashMap.put(1, 拌粉);hashMap.put(2, 汤粉);hashMap.put(3, 炒粉);hashMap.put(4, 泡粉);SetInteger keys hashMap.keySet();for (Integer key : keys) {if (key 2) {// hashMap在迭代时不允许对集合进行增删等操作hashMap.remove(3); // hashMap.put(5, 扎粉);}}} }Dictionary类 Dictionary类是一代集合中的双列集合顶层类Dictionary类中的方法都是双列集合中最基本的方法严格意义来说Java中所有的双列集合都应该继承与Dictionary类但Java2推出了一系列二代集合其中二代集合中的Map接口也已经替代了Dictionary接口成为双列集合的顶层接口因此Dictionary接口下面没有太多的实现类 Tips目前JDK已经不推荐使用Dictionary类了 Dictionary接口方法如下 方法说明 EnumerationV elements()返回此字典中值的枚举。 V get(Object key)返回该字典中键映射到的值。boolean isEmpty()检测该字典是否为空。 EnumerationK keys()返回此字典中键的枚举。 V put(K key, V value)添加一对key,value到字典中 V remove(Object key)根据对应的key从字典中删除value。 int size()返回此字典中的条目数。 方法测试 package com.dfbz.hashtable;import java.util.Dictionary; import java.util.Enumeration; import java.util.Hashtable;/*** author lscl* version 1.0* intro:*/ public class Demo01_Hashtable基本使用 {public static void main(String[] args) {DictionaryInteger, String hashtable new Hashtable();hashtable.put(1, 南昌拌粉);hashtable.put(2, 粉蒸肉);hashtable.put(3, 福羹);hashtable.put(4, 藜蒿炒腊肉);hashtable.put(5, 瓦罐汤);String s1 hashtable.get(3);System.out.println(s1); // 福羹String s2 hashtable.remove(2);System.out.println(s2); // 粉蒸肉System.out.println(hashtable); // {5瓦罐汤, 4藜蒿炒腊肉, 3福羹, 1南昌拌粉}System.out.println(-------------);// 获取到Hashtable的所有keyEnumerationInteger keys hashtable.keys();while (keys.hasMoreElements()){Integer key keys.nextElement();System.out.println(key);}System.out.println(-------------);// 获取到Hashtable的所有valueEnumerationString vals hashtable.elements();while (vals.hasMoreElements()){String val vals.nextElement();System.out.println(val);}System.out.println(-----------------);System.out.println(hashtable.size()); // 4} }
http://www.dnsts.com.cn/news/197744.html

相关文章:

  • 做淘宝优惠网站网站怎么做百度口碑
  • 充电宝网站建设策划书wordpress1.4
  • 扒完网站代码之后怎么做模板千锋教育成立于哪一年
  • 网站开发团队需要几个人深圳坂田做网站
  • 信阳 网站建设wordpress数据库时间格式
  • 怎么做这个购物网站wordpress 网页慢
  • 凡诺企业网站管理系统自媒体营销代理
  • 手机企业网站设计理念wordpress post 钩子
  • 企业建站系统开源Wordpress哪些出现403
  • 北京所有做招聘类网站建站公司wordpress带支付宝主题
  • 北京公司网站建设价格wordpress评论回复插件
  • 沈阳网站建设电话重庆工程造价信息
  • 做网站的功能是什么dw做的网站上传
  • 餐饮网站建设策划书wordpress调用python
  • 移动网站建设条件莱芜做网站的商家有哪些
  • 导入表格数据做地图网站网站建设 上
  • asp网站连接access数据库wordpress微信公众平台
  • 做视频网站要什么自己做直播网站
  • 网站备案协议书搜索引擎推广实训
  • 淘宝网站建设教程视频php源码怎么建设网站
  • app定制开发网站有哪些电商界面设计图
  • 企业网站建设的账务处理合肥做兼职网站
  • 怎样在微信上开发小程序seo搜索引擎优化试题及答案
  • 潍坊网站建设价格低百度一下照片识别
  • 网站主页设计收费模板之家网站
  • 武清做网站的网站怎么做外链接
  • 医院网站优化方案hugo网站建设
  • 内购券网站开发施工企业图片
  • 这么做输入文字的网站众安保险网站
  • 微商网站怎么做建设网站的实验目的