List代表一种线性表的数据结构,ArrayList则是一种顺序存储的线性表。ArrayList底层采用数组来保存每个集合元素,LinkedList则是一种链式存储的线性表。
Vector: 底层用数组实现List接口
特点:占据更多的系统开销 线程安全 重量级 Vector每次扩张只是扩大需要的参数个数大小
ArrayList:底层用数组实现的List
特点:查询效率高,增删效率低 线程不安全 轻量级 ArrayList则是一次性过大50%的空间, 但是可以通过trimToSize方法在ArrayList分配完毕之后去掉浪费掉的空间。
LinkedList:底层用双向循环链表 实现的List
特点:查询效率低,增删效率高
// 集合的遍历 for循环 和迭代器
ArrayList<String> arrayList = new ArrayList();
final String TEST = "test";
int variableInteger = 5;
for (int i=0; i<variableInteger ; i++) {
arrayList.add(TEST + i.toString);
}
// for遍历
for(int i=0;i<arrayList .size();i++)
{
System.out.println(arrayList .get(i));
}
//迭代器遍历
Iterator it=aarrayList .iterator();
while(it.hasNext())
{
System.out.println(arrayList .next());
}