;
JAVA集合知识点
集合(collection):
List集合:
Arraylist;ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
特点:查询容易,插入和删除困难;
Linkedlist.:LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。
特点:查询困难,插入和删除容易。
vector(了解一下就行过时了):Vector非常类似ArrayList,但是Vector是同步的。
Set集合:
Hastset:它不允许出现重复元素;
不保证集合中元素的顺序允许包含值为null的元素,但最多只能有一个null元素。HashSet的实现是不同步的。
LinkedHastset:LinkedHashSet继承自HashSet,其底层是基于LinkedHashMap来实现的,有序,非同步。
Treeset:TreeSet描述的是Set的一种变体——可以实现排序等功能的集合,它在将对象元素添加到集合中时会自动按照某种比较规则将其插入到有序的对象序列中。
Map集合:
HastMap:HashMap<K, V>是基于哈希表这个数据结构的Map接口具体实现,允许null键和null值。
TreeMap:TreeMap<K, V>一个基于红黑树的Map接口实现。TreeMap中的元素的有序的。
concurrentHastMap,Hashtable(了解一下就行过时了):Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。
hashmap遍历的两种方式
HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历
方法一:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
效率高
方法二:
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
效率低
Iterable;iterable是迭代器,实现iterable接口的类必须要提供一个东西,使用for循环先获得一个迭代器对象,获得以后然后通过hasNext方法,迭代器可以在迭代过程中
删除底层集合的元素,不可以直接调用remove(object),可以通过迭代器remove()
graph TD;
A-->B;
B-->C;
```mermaid
