初学Java,Hashtable,HashMap,LinkedHashMap和Properties

来源:互联网 发布:淘宝女鞋店铺起名 编辑:程序博客网 时间:2024/05/29 02:31

Hashtable,呵呵,这个类的命名有问题啊,table的T没有大写,而C#中就是HashTable,这个类很"老",在JDK1.0就出现了,可能当时并没有人发现它的命名问题,待到后来已经牵涉到太多的其它类,此时已经无法轻易的修改它的名字了,也就这么着了,属于历史遗留问题.

Hashtable与HashMap这两个类似乎很像,但还是有区别的 ,Hashtable是一个线程安全的Map实现,但HashMap不是,所以HashMap的性能会高一些,如果多个线程访问同一个Map对象时,使用Hashtable会更好.

Hashtable不允许使用null作为Key和Vaule,试图把null放入Hashtable会得到NullPointerException异常,但HashMap可以使用null作为Key或Vaule

LinkedHashMap是HashMap的子类,也使用了双向链表来维护Key-Value次序,次序与插入元素的次序一致

Properties是Hashtable类的子类,在处理属性文件时特别方便(如windows平台的ini文件),Properties类可以把Map对象和属性文件关联起来,把Map对象中的key-value对写入属性文件,也可以把属性文件中的 "属性名 = 属性值"加载到Map对象中。Properties的key和value都只能是字符串类型


import java.util.*;  import java.io.*;  public class TestProperties   {      public static void main(String[] args) throws Exception      {          Properties props = new Properties();          //向Properties中增加属性          props.setProperty("username","yeeku");          props.setProperty("password","123456");          //将Properties中的属性保存到a.ini文件中          props.store(new FileOutputStream("a.ini"),"comment line");          //新建一个Properties对象          Properties props2 = new Properties();          //向Properties中增加属性          props2.setProperty("gender","male");          //将a.ini文件中的属性名-属性值追加到props2中          props2.load(new FileInputStream("a.ini"));          System.out.println(props2);      }  }  

打印出的文字为:

{password=123456,gender=male,username=yeeku}

a.ini 文件内容如下:

#comment line
#Wed Feb 22 22:17:41 CST 2012
password=123456
username=yeeku


0 0
原创粉丝点击