本文共 1401 字,大约阅读时间需要 4 分钟。
一、摘要
Collection List Set
List--->ArrayList Vector LinkedList ArrayList:底层数据结构是数组 查询快,增删慢 线程不安全 效率高 Vector 底层数据结构是数组 查询快,增删慢,线程安全,效率低 LinkedList 底层数据结构是链表 查询慢 增删快 线程不安全效率高 集合遍历的遍历方式 迭代器,for循环 泛型机制:JDK1.5之后引入的一个新特性,将数据类型的明确工作推迟到创建对象,或者调用方法时再去明确的一种机制 泛型可以定义在 接口上,类上,方法上 注意:泛型他旨在编译器有效,到了运行期,就会擦除 泛型的好处:扩展性强,他将问题提前到了编译器,避免了向下转型 向下转型 ? extends Object 向上转型 ? super Dog二、 List集合
1、 List 接口
List集合的特有功能概述 void add(int index,E element): 在指定索引处添加元素 E remove(int index):移除指定索引处的元素 返回的是移除的元素 E get(int index):获取指定索引处的元素2、遍历集合
1)迭代器方法Iterator iterator = list.iterator();
while (iterator.hasNext()) { System.out.println(iterator.next()); }2)列表迭代器法
ListIterator<E> listIterator() 返回此列表元素的列表迭代器(按适当顺序)
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) { System.out.println(listIterator.next()); }boolean hasPrevious()
如果以逆向遍历列表,列表迭代器有多个元素,则返回 true,想要进行反向遍历,先要进行正向遍历。3)采用(加强)for循环来遍历
for(int i=0;i<list.size();i++) { System.out.println(list.get(i)); }(加强for循環) Integer num 容器中的数据类型 以及元素的变量名
integers 容器名 for (Integer num: integers){ System.out.println(num); }3、ConcurrentModificationException 并发修改异常
为什么会出现并发修改异常:我现在用的是迭代器,进行遍历,在遍历之前,迭代器已经知道了,你集合中的所有元素然后你在迭代的过程当中,突然间想要添加一个元素,迭代器肯定加不进去的
解决方案1:用迭代器中的添加方法 解决方法2 用for 进行遍历4、可变参数 数据类型... 变量名
private static int addMthod(int... a) {
可变参数本质上是个数组 System.out.println(a.length); int sum=0; for(int num:a){ sum+=num; }return sum;
}
转载地址:http://dqksi.baihongyu.com/