一、集合类汇总
1.数组与集合
数组:既可存储基本数据类型,也可以存储同类对象。长度固定。
集合:只能存储对象,类别可以不同。长度不固定。
Collection是集合类的根接口,其被继承产生了两个接口,Set和List。
Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。
Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。Map包含了key-value对。Map不能包含重复的key,但是可以包含相同的value。
Iterator,所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法:
1.hasNext()是否还有下一个元素。
2.next()返回下一个元素。
3.remove()删除当前元素。
arraylist和linkedlist:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
ArrayList重要数据结构(数组):
1.1. // 保存ArrayList中数据的数组 private transient Object[] elementData;
1.2. // ArrayList中实际数据的数量 private int size;
LinkList重要数据结构(双向循环链表):
private transient Entry<E> header = new Entry<E>(null, null, null); //链表节点
private transient int size = 0; //节点数量
2.对于随机访问get和set,ArrayList优于LinkedList,因为LinkList要移动指针。
3.对于新增和删除操作add和remove,LinkList比较占优势,因为ArrayList要移动数据。