资讯专栏INFORMATION COLUMN

HashTable,HashMap,Properties

Batkid / 1124人阅读

摘要:的区别和的区别一,他们继承的父类不一样继承于抽象类继承于抽象类二,线程不安全,线程安全如何将变成线程安全的,使用下面的方法线程不安全,非同步,一般效率相对高一些三,允许键值为不可以。

HashTable,HashMap,Properties 的区别

HashMap 和 HashTable的区别

一,他们继承的父类不一样

1,HashTable继承于抽象类 Dictionary
  public class Hashtable extends Dictionary
2,HashMap 继承于抽象类 java.util.AbstractMap

二,HashMap线程不安全,HashTable线程安全

HashMap:Note that this implementation is not synchronized.
如何将HashMap变成线程安全的,使用下面的方法:
 Map m = Collections.synchronizedMap(new HashMap(...));
线程不安全,非同步,一般效率相对高一些

三,HashMap 允许键,值为 null, HashTable 不可以。

 JDK:Hash table based implementation of the Map interface. This implementation provides all of the optional map operations, and permits null values and the null key. (The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls.) This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.
 JDK:Any non-null object can be used as a key and as a value.(键,值不能为空)

三,Properties 与 HashTable 的区别

Properties 是HashTable的子类
 public class Properties
extends Hashtable

并且是线程安全的,

JDK:This class is thread-safe: multiple threads can share a single Properties object without the need for external synchronization.

使用properties输出到文件

资源配置文件

1,.properties

store(OutputStream out, String comments)

store(Writer writer, String comments)

2,.xml

storeToXML(OutputStream os, String comment)

storeToXML(OutputStream os, String comment, String encoding)

Properties pro 
          = new Properties();
    pro.setProperty("name", "mk");
    pro.setProperty("url", "www.baidu.com");
    //存储到 d盘盘符
   1,存储为.properties 文件
    pro.store(new FileOutputStream(new File("D://db.properties")), "db配置文件");
    //2,存储为 .xml文件
//    pro.storeToXML(new FileOutputStream(new File("D://db.xml")), "db配置文件");
    //使用相对路径 当前的项目根目录
//    pro.store(new FileOutputStream(new File("db.properties")), "db配置文件");    

使用Properties读取资源配置文件

load(InputStream inStream)

load(Reader reader)

loadFromXML(InputStream in)

Properties pro 
          = new Properties();
    //读取绝对路径
    pro.load(new FileReader("D://db.properties"));
    //读取相对路径
    pro.loadFromXML(new FileInputStream("D://db.xml"));

如果文件保存在bin里面,也是在我们工作中经常碰到的一种情况

Properties pro 
          = new Properties();
    pro.load(Demo.class.getResourceAsStream("/project/db.properties"));
    pro.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("project/db.properties"));

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64821.html

相关文章

  • java集合-Map

    摘要:增强的集合都可以是任何引用类型的数据,的不允许重复即同一个对象的任何两个通过方法比较总是返回。的这些实现类和子接口中集的存储形式和对应集合中元素的存储形式完全相同。根据的自然顺序,即枚举值的定义顺序,来维护对的顺序。 Java8增强的Map集合 Key-value都可以是任何引用类型的数据,Map的Key不允许重复即同一个Map对象的任何两个key通过equals方法比较总是返回...

    Little_XM 评论0 收藏0
  • Java 集合 Map Properties读取属性文件

    摘要:和之间存在单向一对一关系,即通过指定的,总能找到唯一的确定的。从中取出数据时,只要给出指定的,就可以取出对应的。有时也称为字典,或关联数组。采用定制排序时不要求的实现接口中判断两个相等的标准是两个通过方法返回,即认为这两个是相等的。 map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value,key和value...

    tomato 评论0 收藏0
  • Map学习二之LinkedHash,HashTable,计算一个给定字符串的每个字符出现的次数

    package com.itheima.demo03.Map; import java.util.HashMap;import java.util.LinkedHashMap; /* java.util.LinkedHashMap entends HashMap Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。 底层原理: 哈希表+链表(记录元素的顺序) */public cla...

    Rocture 评论0 收藏0
  • 集合小记

    摘要:解決沖突开放定址法拉链法表解決沖突开放定址法再哈希法链地址法建立公共溢出区并发包中的线程安全的集合容器线程安全的,不允许为,默认个的数组,每个中实现就是了,通过定位。基于数组,线程安全的集合类,容量可以限制。 List   List 元素是有序的、可重复,实现List接口的集合主要有:ArrayList、LinkedList、Vector、Stack。   ArrayList:动态数组...

    alaege 评论0 收藏0
  • 近期Java高级工程师面试总结

    摘要:面试总结最近两周面试了几家公司高级工程师的职位,主要有宜信网信金融阿里高德口袋购物。目前有部分公司已经面试通过,两家在等消息。今天趁热把常见面试内容总结一下。可以用来完成统一命名服务状态同步服务集群管理分布式应用配置项等管理工作。 面试总结 最近两周面试了几家公司Java高级工程师的职位,主要有宜信、网信金融、阿里高德、口袋购物。目前有部分公司已经面试通过,两家在等消息。今天趁热把常见...

    raoyi 评论0 收藏0

发表评论

0条评论

Batkid

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<