开始时间:2020-11-21
HashMap和HashTable的区别
package BUPT20201121;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
public class HashMapTest03 {
public static void main(String[] args) {
//都不指定泛型时,HashMap可以传空指针进去,而HashTable不行
Map map = new HashMap<>();
map.put(null, null);
System.out.println(map.size());
Map map1 = new Hashtable();
//key和value有一个为空就不行了
map1.put(null, null);
System.out.println(map1.size());
}
}
HashTable都是synchronized,线程安全,但是有他的替代方法了,所以HashTable用得较少了
HashTable初始化容量是11不是16,默认加载因子两者都是0.75
HashTable的扩容是老容量乘2再加1
Properties
package BUPT20201121;
import java.util.Properties;
/*
Properties继承Hashtable ,Properties的key和value都是string类型。
被称为属性类对象
线程安全
*/
public class PropertiesTest01 {
public static void main(String[] args) {
Properties properties = new Properties();
//按照key,value的形式存进去
//set和get方法
properties.setProperty("url", "jdbc:mysql://localhost:3306/BUPT");
properties.setProperty("UserName", "Jindaohei");
properties.setProperty("password", "heidaojin");
//通过key获取value
String s1 = properties.getProperty("url");
String s2 = properties.getProperty("UserName");
String s3 = properties.getProperty("password");
System.out.println(s1 + "==" + s2 + "==" + s3);
}
}
可以按住alt选中多行,进行多行编辑
TreeMap
package BUPT20201121;
import java.util.TreeSet;
/*
TreeSet集合的底层是一个TreeMap,TreeMap底层是一个二叉树
放到TreeSet中的元素,等同于放到TreeMap的key部分
无序不可重复,但是顺序是按大小排好了
*/
public class TreeMapTest01 {
public static void main(String[] args) {
TreeSe