摘要:的區(qū)別和的區(qū)別一,他們繼承的父類不一樣繼承于抽象類繼承于抽象類二,線程不安全,線程安全如何將變成線程安全的,使用下面的方法線程不安全,非同步,一般效率相對高一些三,允許鍵值為不可以。
HashTable,HashMap,Properties 的區(qū)別
HashMap 和 HashTable的區(qū)別
一,他們繼承的父類不一樣
1,HashTable繼承于抽象類 Dictionary
public class Hashtableextends 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 的區(qū)別
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里面,也是在我們工作中經(jīng)常碰到的一種情況
Properties pro = new Properties(); pro.load(Demo.class.getResourceAsStream("/project/db.properties")); pro.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("project/db.properties"));
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/64821.html
摘要:增強的集合都可以是任何引用類型的數(shù)據(jù),的不允許重復即同一個對象的任何兩個通過方法比較總是返回。的這些實現(xiàn)類和子接口中集的存儲形式和對應集合中元素的存儲形式完全相同。根據(jù)的自然順序,即枚舉值的定義順序,來維護對的順序。 Java8增強的Map集合 Key-value都可以是任何引用類型的數(shù)據(jù),Map的Key不允許重復即同一個Map對象的任何兩個key通過equals方法比較總是返回...
摘要:和之間存在單向一對一關(guān)系,即通過指定的,總能找到唯一的確定的。從中取出數(shù)據(jù)時,只要給出指定的,就可以取出對應的。有時也稱為字典,或關(guān)聯(lián)數(shù)組。采用定制排序時不要求的實現(xiàn)接口中判斷兩個相等的標準是兩個通過方法返回,即認為這兩個是相等的。 map用于保存具有映射關(guān)系的數(shù)據(jù),因此Map集合里保存著兩組值,一組值用于保存Map里的key,另外一組值用于保存Map里的value,key和value...
package com.itheima.demo03.Map; import java.util.HashMap;import java.util.LinkedHashMap; /* java.util.LinkedHashMap entends HashMap Map 接口的哈希表和鏈接列表實現(xiàn),具有可預知的迭代順序。 底層原理: 哈希表+鏈表(記錄元素的順序) */public cla...
摘要:面試總結(jié)最近兩周面試了幾家公司高級工程師的職位,主要有宜信網(wǎng)信金融阿里高德口袋購物。目前有部分公司已經(jīng)面試通過,兩家在等消息。今天趁熱把常見面試內(nèi)容總結(jié)一下。可以用來完成統(tǒng)一命名服務狀態(tài)同步服務集群管理分布式應用配置項等管理工作。 面試總結(jié) 最近兩周面試了幾家公司Java高級工程師的職位,主要有宜信、網(wǎng)信金融、阿里高德、口袋購物。目前有部分公司已經(jīng)面試通過,兩家在等消息。今天趁熱把常見...
閱讀 535·2019-08-30 15:55
閱讀 944·2019-08-29 15:35
閱讀 1199·2019-08-29 13:48
閱讀 1910·2019-08-26 13:29
閱讀 2933·2019-08-23 18:26
閱讀 1237·2019-08-23 18:20
閱讀 2834·2019-08-23 16:43
閱讀 2710·2019-08-23 15:58