1、集合
数组优点:方便查询,有下标。
数组缺点:长度固定、类型不一致、不便于做添加删除。
ArrayList本质上就是一个Object类型的数组,既然是数组,优点:便于做元素的遍历。
缺点:不便于做元素的添加和删除。
public class ArrayList{
private int size;
private Object[] objemp = null;
public ArrayList(){
this(10);
}
public ArrayList(){}
public int size(){
return this.size;
}
public boolean isEmpty(){}
public void clear(){}
public void add(Object obj){}
}
2、LinkedList集合
本质不是用数组实现,在linkedlist每个元素中,除了包含元素对象之外,还包含了一个指针,它指向了下一个元素的地址。
优点:便于做元素,添加和删除。
缺点:它没有下标,所以不便于做元素的遍历。
linkedlist具有的list.addFirst("xiaohong");
list.addLast("daxiong");
list.removeFirst();
list.removeLast();等等方法非常适合做堆栈结构(先进后出)的例子和队列结构(先进先出)的例子。
3、Vector
Vector与ArrayList本质上都是用object数组来实现的。区别在于Vector中所有的方法全部都是同步方法(synchronized)。
Vector是一种线程安全的集合。
4、HashMap
HashMap是以键值对的方式来存放数据。是通过hash算法,使用键来生成一个唯一的地址,然后将数据保存到这个地址中。因为地址是唯一的,所以HashMap具有一个特点,它的键是不能相同的,否则会覆盖前面的元素。