目录
Map不同实现类的对比
- java.util.Map:存储一对一对的数据(key-value键值对。类似于高中的函数)
- HashMap(主要实现类);线程不安全,效率高,可以添加null的key和value值,底层使用数组+单向链表+红黑树存储(jdk8)
- LinkedHashMap:是HashMap的子类,在此基础上增加了一对双向链表,(变的有序了)用于记录添加元素的先后顺序。进而我们遍历元素时就可以按照添加的顺序显示。开发中,对于频繁的遍历操作,建议使用此类。
- Hashtable(古老实现类):线程安全的,效率低,不可以添加null的key或value值,底层使用数组+单项列表存储
- Properties:其key和value都是String类型,常用来处理属性文件,子类
- TreeMap:底层使用红黑树存储,可以按照添加的元素的指定的属性的大小顺序进行遍历,需要考虑使用①自然排序②定制排序(类似Treeset)
- HashMap(主要实现类);线程不安全,效率高,可以添加null的key和value值,底层使用数组+单向链表+红黑树存储(jdk8)
HashMap(灰常重要)中的元素特点
- HashMap中的所有的key是不可重复的,无序的。所有的key构成一个set集合。——>key所在的类要重写hashCode()和equals()两个方法
- HashMap中所有的value彼此之间是可重复的,无序的。所有的value构成一个Collection集合——>所在的类要重写equals()方法
- HashMap中的一个key-value,就构成了一个Entry。
- HashMap中所有的Entry彼此之间是不可重复的,无序的。所有的Entry就构成了一个set集合。
Map中常用的方法
- 增
- put(Object key, Object value)
- putAll(Map m)
- 删
- Object remove(Object key)
- clear()
- 改
- 增操作也表示修改put(Object key, Object value)
- putAll(Map m)
- 查
- Object get(Object key)
- 长度
- size()
- 遍历
- 遍历key集:Set keySet( )
- 遍历value集:Collection values( )
- 遍历entry集:Set entrySet( )
- 其他
- clear()
- boolean containsKey(Object key)
- boolean containsValue(Object value)
遍历key集,value集
遍历entry集
TreeMap、Properties的使用
使用:
- 底层使用红黑树存储
- 可以按照添加的元素的指定的属性的大小顺序进行遍历
- 需要考虑使用①自然排序②定制排序
- 要求:向TreeMap中添加的key必须是同一个类型的对象
Properties
Collections工具类的使用
概述
Collections是一个操作Set、List和Map等集合的工具类。
常见面试题区分Collection和Collections
- Collection:集合框架中的用于存储一个一个元素的接口,又分为List和Set等子接口。
- Collections:用于操作集合框架中的一个工具类。此时的集合框架包括:Set、List、Map
方法(一部分)
排序
- reverse(List):反转List中元素的顺序
- shuffle(List):对List集合元素进行随机排序
- sort(List):根据元素的自然排序对指定List集合元素按升序排序
- sort(List,Comparator):根据指定的Comparator产生的顺序对List集合的元素进行排序
交换
swap(List ,int i, int j):交换下标i和j的元素
查找
- Object max(Collection):根据元素的自然排序,返回给定集合中的元素大小
- Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的"最大元素"
- Object min(Collection)
- Object min(Collection,Comparator)
- int binarySearch(List list,T key):在list集合中查找某一个元素的下标,但是list的元素必须有序
- int binarySearch(List list,T key):在list集合中查找某一个元素的下标,但是list的元素必须有序
- int binarySearch(List list,T key,Comparator c):在list集合中查找某一个元素的下标,但是list的元素必须有序
- int frequency(Collection c,Object o):返回指定集合中指定元素的出现次数
复制、替换:
- void copy(List dest,List src):将src中的内容复制到dest中
- boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List所有旧值
- 提供了多个unmodifiableXxx( )方法,该方法返回指定Xxx的不可修改的视图
同步:
Collection类中提供了多个synchronizedXxx()方法