Collection方法
addAll方法:把指定集合中的所有元素都添加到当前集合中。
removeAll:把指定集合与当前集合的交集删除。
retainAll:判断调用者是否发生变化
迭代器遍历集合
Collection c = new ArrayList();
c.add( new Student("刘","20"));
c.add( new Student("彭","20"));
c.add( new Student("康","20"));
Object[] array = c.toArray();
for (int i = 0; i < array.length; i++) {
Student student = (Student)array[i];
System.out.println(student.getName());
}
Iterator iterator = c.iterator();
while (iterator.hasNext()) {
//向下转型
Student student = (Student)iterator.next();
System.out.println(student.getName());
}
实际上集合内部有一个指针 调用next 实际上把指针向下移动一位 调用几次挪动几次
* 什么时候使用ArrayList 和 LinkedList ?
* ArrayList 特点
* 查询块 增删慢
* 数组实现 数组是一块连续的内存空间
* 按角标查询
* 增删时 把要删除或增加的元素后面的所有元素
* 向前移动或者向后移动
*
* LinkedList 特点
* 查询慢 增删快
* 链表实现
* 查询:
* 先看这个元素 离那一端近 就从那一端开始
* 一个一个向前或向后 寻找 直到找到为止
* 增加:
* 链表中的元素 要保证 能找到 自己的上一个 和下一个元素
* 需要保存 上一个和下一个元素的地址
* 只要保存了地址 就能找到元素 相当于 插入到了 链中
* 后面的元素 不会发生改变
*
* 两个集合 如何选择? 根据实际需求来判断 ---扯你的项目
* 增删多 链表
* 查询多 数组* 什么时候使用ArrayList 和 LinkedList ?
* ArrayList 特点
* 查询块 增删慢
* 数组实现 数组是一块连续的内存空间
* 按角标查询
* 增删时 把要删除或增加的元素后面的所有元素
* 向前移动或者向后移动
*
* LinkedList 特点
* 查询慢 增删快
* 链表实现
* 查询:
* 先看这个元素 离那一端近 就从那一端开始
* 一个一个向前或向后 寻找 直到找到为止
* 增加:
* 链表中的元素 要保证 能找到 自己的上一个 和下一个元素
* 需要保存 上一个和下一个元素的地址
* 只要保存了地址 就能找到元素 相当于 插入到了 链中
* 后面的元素 不会发生改变
*
* 两个集合 如何选择? 根据实际需求来判断 ---扯你的项目
* 增删多 链表
* 查询多 数组
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
//使用list接口中 特有的迭代器
//listIterator中的添加方法
//获取迭代器
ListIterator listIterator = list.listIterator();
while (listIterator.hasNext()) {
//获取元素 并 强转类型
String string = (String)listIterator.next();
if (string.equals("b")) {
//使用迭代器中的 添加方法
listIterator.add("OH-YES");
}
}
System.out.println(list);
LIst特有方法 add set get remove
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
// 添加 (不要超出集合的元素个数 Size)
//list.add(0, "X");
// 设置元素(替换该位置的元素)
//list.set(3, "W");
// 获取下标处的元素
Object object = list.get(0);
//System.out.println(object);
//删除(返回的是 删除的元素)
Object obj = list.remove(0);
System.out.println(obj);
//利用get方法 遍历
for (int i = 0; i < list.size(); i++) {
//打印元素
System.out.println(list.get(i));
}