Java基础之:集合——Map——HashTable
HashTable简单介绍
-
This class implements a hash table[该类实现hashtable]
-
which maps keys to values [元素是键值对]
-
Any non-null object can be used as a key or as a value [hashtable的键和值都不能为null]
-
所以是从上面看,hashTable 基本上和hashMap一样的.
-
hashTable 是线程安全的,hashMap 是线程不安全的.
简单使用案例
package class_Map; import java.util.Hashtable; public class ClassTest03_HashTable { @SuppressWarnings({ "rawtypes", "unchecked" }) public static void main(String[] args) { Hashtable table = new Hashtable();// ok table.put("john", 100); // ok // table.put(null, 100); //错误 , 键不能为 null, 抛出异常 // table.put("john", null);//错误 , 值不能为 null, 抛出异常 table.put("lucy", 100);// ok table.put("lic", 100);// ok System.out.println(table); } }
HashTable与HashMap对比
Properties
Properties是继承了HashTable的子类,主要用于文件io流当中。
使用Properties读取文件
import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; import java.util.Iterator; import java.util.Properties; public class Properties01 { public static void main(String[] args) { // 创建一个 Properties 对象, 按照 key-value 来进行管理的 Properties prop = new Properties(); // 对文件操作 try { // 功能,将 a.properites 文件读取 // 读取属性文件a.properties // 文件编程内容,你们 1 day 讲解 // 创建一个 InputStream, 就可以读取 a.properties // in 的编译类型 InputStream, 运行类型 BufferedInputStream InputStream in = new BufferedInputStream(new FileInputStream("src\\my.properties")); prop.load(in); /// 加载属性列表 // 泛型<String> Iterator<String> it = prop.stringPropertyNames().iterator(); // 迭代器读取 while (it.hasNext()) { String key = it.next(); /* * * user=hsp pwd=123456 ip=192.168.11.11 */ System.out.println(key + ":" + prop.getProperty(key)); } // 关闭流 in.close(); } catch (Exception e) { // TODO: handle exception System.out.println(e.getMessage()); } } }
使用Properties写文件
import java.io.FileOutputStream; import java.util.Properties; public class Properties02 { public static void main(String[] args) { // TODO Auto-generated method stub // 创建一个 Properties 对象, 按照 key-value 来进行管理的 Properties prop = new Properties(); try { /// 保存属性到a.properties文件 // 创建了一个 FileOutputStream 对象,用于向文件中 a.properties 写入内容 FileOutputStream oFile = new FileOutputStream("src\\my.properties", true);// true表示追加打开 prop.setProperty("db", "order"); //增加 // //prop.store(oFile, "The New properties file"); prop.store(oFile, ""); //如果是空串就没有多余信息了.. oFile.close(); } catch (Exception e) { // TODO: handle exception System.err.println(e.getMessage()); } System.out.println("操作成功~~"); } }