集合框架概括
1.List集合的特点和概括
2.arrayList集合
3.vector集合特有的特点
4.集合框架LinkedList
集合框架:数据多了用对象进行存储,对象多了用集合来进行存储。而存储数据的方式(数据结构)各有不同,所以存储的容器也就有多种,从而形成了集合框架这一体系。
List,arrayList,vector都是collection所包括在内的集合
List集合
llist集合所特有的迭代器 - - - ListIterator是Iterator的子接口
在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生并发修改异常(ConcurrentModificationException),所以,在迭代时,只能通过迭代器来操作元素,课时Iterator的方法是有限的,Iterator只提供了判断、取出、删除的操作,
增
* add(index," ") 在指定下标增加指定元素
* 删
* Remove(index) 删除指定下标元素
* 改
* Set(index,element) 在指定下标修改指定元素
* 查
* Get(index) 查找指定下标元素
*
在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生并发修改异常(ConcurrentModificationException)如果想要有其他的操作,如添加、修改等,就需要使用其子接口ListIterator,该接口只list集合的listIterator方法来获取
!
arrayList集合
arrayList集合数组结构 增删慢,查询快 有连续下标 线程不同步 增长因子为1.5 倍 初始长度为10
可以通过调优来节省时间和空间
ArrayList li = new ArrayList<>(50);//调优 设置长度
如果想要知道集合的长度可以写出这个方法
public static void getLen(ArrayList li) throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
Field f = li.getClass().getDeclaredField("elementData");
f.setAccessible(true);
Object obj = f.get(li);
Object[] elementData = (Object[]) obj;
System.out.println("当前容器的容量是:"+elementData.length);
}
Vector的集合
数组结构 增删改查都慢 有连续下标 线程同步 增长因子2倍 初始长度10
vector的特点 枚举 是它特有的遍历方式
Vector v = new Vector<>();
v.add("xx");
v.add("aa");
Enumeration eles = v.elements();
while(eles.hasMoreElements()) {
System.out.println(eles.nextElement());
}
集合框架LinkedList
链表的数据结构
特有方法
addFirst();
addLast();
可以用堆栈存储结构特点 和 队列存储结构特点的看法来运用
堆栈是 先进后出
队列便是 先进先出
class DuiZhan{//堆栈
private LinkedList li= new LinkedList<>();
public void push(Object obj) {//存进
li.addFirst(obj);
}
public Object pop(Object obj) {
return li.getLast();//取出
}
public void bianli() {//打印
Iterator i = li.iterator();
while(i.hasNext()) {
System.out.println(i.next());
}
}
}
它遍历输出的结果是
而在队列中运用也差不多 把addFirst(); 替换成 addLast(); 遍历输出的结果便是反过来