All方法
//创建两个集合
Collection c1 = new ArrayList<>();
Collection c2 = new ArrayList<>();
1.
c1.add("a");
c1.add("b");
c1.add("c");
c1.add("d");
c2.add("a");
c2.add("b");
c2.add("c");
c2.add("d");
//add 和 addAll 的区别
c1.add(c2);
//add
//把传入的集合 当做一个元素 添加到调用的集合中
boolean b1 = c1.addAll(c2);
System.out.println(b1);
System.out.println(c1);
System.out.println(c2);
//addAll 把传入的集合中所有元素添加到 调用的集合中
//add
//把传入的集合 当做一个元素 添加到调用的集合中
2.//测试removeAll
//删除是 两个集合交集
//谁调用这个方法 就在哪个集合中删除
c1.removeAll(c2);
System.out.println(c1);
System.out.println(c2);
3.//测试retainAll
//retainAll
boolean retainAll = c1.retainAll(c2);
System.out.println(c1);
System.out.println(c2);
System.out.println(retainAll);
4.//containsAll
//1集合 完全包含 2集合元素 才返回true
boolean contains = c1.containsAll(c2);
System.out.println(c1);
System.out.println(c2);
System.out.println(contains);
迭代器
Collection c1 = new ArrayList();
c1.add("a");
c1.add("b");
c1.add("c");
c1.add("d");
- //测试迭代器中方法
//获取迭代器
//next() 有什么作用
//迭代器中 相当于有一个指针
//默认指向 首元素的上面
//当调用hasNext时 会判断 下一个位置有没有元素 即 hasNext不会改变指针位置
//next()方法 会获取下一个元素的值 并且会将指针向下挪动一个位置
Iterator iterator = c1.iterator();
boolean b1 = iterator.hasNext(); System.out.println(b1); if (b1) { //获取下一个元素 Object n1 = iterator.next(); Object n2 = iterator.next(); Object n3 = iterator.next(); Object n4 = iterator.next(); System.out.println(n1); System.out.println(n2); System.out.println(n3); System.out.println(n4); }
2.//利用迭代器循环遍历集合
while (iterator.hasNext()) {
Object object = (Object) iterator.next();
System.out.println(object);
}
练习
/*
* * 创建一个集合 保存三个学生
* 迭代器遍历 只打印学生的姓名
*/
Collection c1 = new ArrayList<>(); Student s1 = new Student("gorilla1",10); Student s2 = new Student("gorilla2",15); Student s3 = new Student("gorilla3",20); c1.add(s1); c1.add(s2); c1.add(s3); Iterator iterator = c1.iterator(); while (iterator.hasNext()) { Object object = (Object) iterator.next(); Student student = (Student) object; System.out.println(student.getName()); }
list接口
List list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
1. //插入时 索引不能大于size
list.add(3,"x"); //替换当前位置的值 list.set(2, "w"); //获取当前位置的值 String string = (String) list.get(2); System.out.println(string); System.out.println(list); //删除当前位置 list.remove(2); System.out.println(list); }
2.
List list = new ArrayList<>();
list.add(111);
list.add(222);
list.add(333);
//删除时 不会自动装箱
list.remove(111);
3.//利用list中特有的方法 get 遍历
for (Object object : list) { System.out.println(object); } for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
4.//逆向遍历
List list = new ArrayList<>();
list.add(“a”);
list.add(“b”);
list.add(“c”);
list.add(“d”);
ListIterator listIterator = list.listIterator();
while (listIterator.hasPrevious()) {//指正处于0位置
String previous = (String)listIterator.previous();
System.out.println(previous);
}
5.
Vector vector = new Vector<>();
vector.addElement(“a”);
vector.addElement(“b”);
vector.addElement(“c”);
vector.addElement(“d”);
//迭代器遍历
Enumeration elements = vector.elements(); while (elements.hasMoreElements()) { String str = (String) elements.nextElement(); System.out.println(str); }
6.
LinkedList list = new LinkedList<>();
//添加第一个元素
list.addFirst(“a”);
list.addFirst(“b”);
list.addFirst(“n”);
System.out.println(list);
//从最后添加
list.addLast(“v”);
list.addLast(“t”);
list.addLast(“r”);
System.out.println(list);
//删除最后一个元素
Object removeLast = list.removeLast();
System.out.println(removeLast);