75.HashTable
基本介绍:
-
存放元素的健值对 即K-V
-
hashtable的键和值都不能为null,否则会抛出NullPointerException
-
hashtable使用方法基本上和HashMap一样
-
hashtable是线程安全的,hashmap是线程不安全
扩容机制:
-
底层有数组Hashtable$Entry[] 初始化大小为11
-
临界值threshedld 8 = 11 * 0.75
-
扩容:按照自己的扩容机制来即可
-
执行 方法addEntry(hash,key,value,index);添加K-V 封装到Entry
-
按照 int new Capacity = (oldCapactiy << 1) + 1;的大小来扩容
76.Properties
-
Properties类继承自Hashtable类并实现了Map接口,也是使用一种键值对的形式来保存数据
-
他的使用特点和Hashtable类似
-
Properties还可以用于从xxx.properties文件中,加载数据到Properties类对象,并进行读取和修改
77.开发中如何选择集合实现类
-
先判断存储的类型(一组对象或一组键值对)
-
一组对象:Collection接口
允许重复:List
增删多:LinkedList[底层维护了一个双向链表]
改查多:ArrayList[底层维护Object类型的可变数组]
不允许重复:Set
无序:HashSet [底层是HashMap,维护了一个哈希表(数组+链表+红黑树)]
排序:TreeSet
插入和取出顺序一致:LinkedHashSet,维护数组+双向链表
-
一组键值对:Map
键无序:HashMap[底层是:哈希表]
键排序:TreeMap
键插入和取出顺序一致:LinkedHashMap
读取文件:Properties
78.Collections工具类
工具类介绍:
-
Collections是一个操作Set、List和Map等集合的工具类
-
Collections中提供了一系列静态的方法对集合元素进行排序、查询和修改和操作
排序操作:(均为static方法)
-
reverse(List):反转List中元素的顺序
-
shuffle(List):对List集合元素进行随机排序
-
sort(List):根据元素的自然顺序对指定List集合元素按升序排序
-
sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序
-
swap(List,int,int):将指定List集合中的 i 处元素和 j 处元素进行交换
查找、替换:
-
Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
-
Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素
-
Object min(Collection)
-
Object min(Collection,Comparator):
-
int frequency(Collection,Object):返回指定集合中指定元素的出现次数
-
void copy(List dest,List src):将src中的内容复制到dest中
-
boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值