collecction和collections:
1.collection是所有集合类的父接口,继承他的接口主要有Set和List。他提供了对集合对象进行基本操作的通用接口方法。
collection:List{ArrayList;LinkedList}
Set
2.Collections是一个包装类。它包括许多有关集合操作的静态方法。这种类不能实例化,就像一个工具类。例如collections.sort();
ArrayList和LinkedList:
作为List的两个实现类,他们的方法在逻辑上基本是相同的,但是由于底层数据结构的不同,造成他们在使用中性能上也有一定的差异,数据量比较小的时候这种差距是可以忽略不计的。
1.ArrayList的底层数据结构是数组(动态的),我们可以通过数组的下标一次性定位到元素,因此ArrayList在查询中具有很大优势。但是在进行插入,修改,删除工作时,所有元素的下标都要改动,这样执行的复杂程度就会随着元素的增多而增大,运行速度自然相对较慢。
2.LinkedList的底层数据结构是链表,在进行数据的增加,修改,删除工作时,只需移动元素的指针就可以,改变的只是指针的地址,并不影响其他,因此在进行数据的增删改工作时,LinkedList具有绝对的优势。但是如果需要查询数据时,LinkedList只能遍历,随着访问数据量的增加,访问速度就会减慢。
Map:
1.Map 映射
映射的意思就是 key--->value
我们的map中放入的对象都是key + value 键值对
Map中放入的对象都是键值对
Map也是集合,用来存在很多对象。
Map中存放的一定是键值对。
Map是一个接口,他的实现类是HashMap
Map map = new HashMap();
2.Map的遍历:
方法一:keySet()方法,将map中的键放到set集合里,对set集合进行迭代,然后通过get方法获取到的键进行值得获取
Set keySet=map.keySet();
Iterator it=keySet.iterator();
while(it.hasNext()){
Object key=it.next();
Object value=map.get(key);
}
方法二:entrySet()方法,entry是map的入口,访问的是map中的键值,迭代器就是Iterator接口
Set entrySet=map.entrySet();
Iterator it2=entrySet.iterator();//获取容器中的迭代器对象
while(it2.hasNext()){
Map.Entry me=(Map.Entry)it2.next();
}