1.集合体系结构List系列集合添加的元素是有序、可重复、有索引有序是指存和取的顺序是一样的Set系列集合添加的元素是无序、不重复、无索引2.Collection集合Collection是单列集合的祖宗接口它的功能是全部单列集合都可以继承使用的。方法名称说明public boolean add(E e)把给定的对象添加到当前集合中public void clear()清空集合中所有的元素public boolean remove(E e)把给定的对象在当前集合中删除public boolean contains(object obj)判断当前集合中是否包含给定的对象public boolean isEmpty()判断当前集合是否为空public int size()返回集合中元素的个数/集合的长度package com.javadan.mycollection; import java.util.ArrayList; import java.util.Collection; public class A01_CollectionDemo1 { public static void main(String[] args) { CollectionString coll new ArrayList(); //1,添加数据 coll.add(aaa); coll.add(bbb); coll.add(ccc); System.out.println(coll); //2.清空 //coll.clear(); //3.删除 //注意因为collection里面定义的是共性方法所以此时不能通过索引进行删除只能通过元素的对象进行删除 coll.remove(aaa); System.out.println(coll); //4.判断元素是否包含 boolean result coll.contains(bbb); System.out.println(result); //5.判断集合是否为空 boolean result2 coll.isEmpty(); System.out.println(result2); //6.获取集合的长度 int size coll.size(); System.out.println(size); } }注意点Collection是一个接口我们不能直接创建他的对象。所以现在我们学习他的方法时只能创建他实现类的对象。实现类ArrayList1.添加元素细节1如果我们要往List系列集合中添加数据那么方法永远返回true因为List系列的是允许元素重复的。细节2如果我们要往Set系列集合中添加数据如果当前要添加元素不存在方法返回true表示添加成功。如果当前要添加的元素已经存在方法返回false表示添加失败。因为Set系列的集合不允许重复。2.删除细节1因为Co11ection里面定义的是共性的方法所以此时不能通过索引进行删除。只能通过元素的对象进行删除。细节2方法会有一个布尔类型的返回值删除成功返回true删除失败返回false如果要删除的元素不存在就会删除失败。3.判断元素是否包含细节底层是依赖equals方法进行判断是否存在的。所以如果集合中存储的是自定义对象也想通过contains方法来判断是否包含那么在javabean类中一定要重写equals方法。package com.javadan.mycollection; import java.util.Objects; public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name name; this.age age; } public String getName() { return name; } public void setName(String name) { this.name name; } public int getAge() { return age; } public void setAge(int age) { this.age age; } Override public String toString() { return Student{ name name \ , age age }; } Override public boolean equals(Object o) { if (o null || getClass() ! o.getClass()) return false; Student student (Student) o; return age student.age Objects.equals(name, student.name); } }package com.javadan.mycollection; import java.util.ArrayList; import java.util.Collection; public class A01_CollectionDemo2 { public static void main(String[] args) { //1.创建集合的对象 CollectionStudent coll new ArrayList(); //2.创建三个学生对象 Student s1 new Student(zhangsan,23); Student s2 new Student(lisi,23); Student s3 new Student(wangwu,22); //3.把学生对象添加到集合中 coll.add(s1); coll.add(s2); coll.add(s3); //4.判断集合当中某一个学生对象是否包含 Student s4 new Student(zhangsan,23); //如果同姓名和同年龄就认为是一个学生 System.out.println(coll.contains(s4)); } }3.Collection的遍历方式迭代器遍历增强for遍历Lambda表达式遍历1迭代器遍历迭代器在Java中的类是Iterator迭代器是集合专用的遍历方式。迭代器在遍历集合时是不依赖索引的Collection集合获取迭代器方法名称说明IteratorE iterator()返回迭代器对象默认指向当前集合的0索引Iterator中的常用方法方法名称说明boolean hasNext()判断当前位置是否有元素,有元素返回true没有元素返回falseE next()获取当前位置的元素并将迭代器对象移向下一个位置。第一行创建指针第二行判断指针所指位置是否有元素第三行获取元素移动指针到下一个位置package com.javadan.mycollection; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class A03_CollectionDemo3 { public static void main(String[] args) { //1.创建集合并添加元素 CollectionString coll new ArrayList(); coll.add(aaa); coll.add(bbb); coll.add(ccc); coll.add(ddd); //2.获取迭代器 //迭代器就好比是一个箭头默认指向集合的0索引处 IteratorString it coll.iterator(); //3.利用循环不断的去获取集合中的一个元素 while (it.hasNext()){ //4.next方法的俩件事情获取元素并移动指针 String str it.next(); System.out.println(str); } } }细节注意点1、如果当前位置没有元素还要强行获取元素会报NoSuchElementException错误2、迭代器遍历完毕指针不会复位3、循环中只能用一次next方法4、迭代器遍历时不能用集合的方法进行增加或者删除如果实在要删除利用迭代器自己的remove方法进行删除2增强for遍历增强for的底层就是迭代器为了简化迭代器的代码书写的。它是JDK5之后出现的其内部原理就是一个Iterator迭代器所有的单列集合和数组才能用增强for进行遍历。细节修改增强for中的变量不会改变集合中原本的数据。3Lambda表达式遍历得益于JDK8开始的新技术Lambda表达式提供了一种更简单、更直接的遍历集合的方式。方法名称说明default void forEach(Consumer? super T action):结合lambda遍历集合小结1.Collection是单列集合的顶层接口所有方法被List和Set系列集合共享2.常见成员方法:add、clear、remove、contains、isEmpty、size3三种通用的遍历方式迭代器在遍历的过程中需要删除元素请使用迭代器。增强for、Lambda:仅仅想遍历那么使用增强for或Lambda表达式。4.List集合List集合的特点有序存和取的元素顺序一致有索引可以通过索引操作元素可重复存储的元素可以重复List集合的特有方法Collection的方法List都继承了List集合因为有索引所以多了很多索引操作的方法。方法名称说明void add(int index,E element)在此集合中的指定位置插入指定的元素E remove(int index)删除指定索引处的元素返回被删除的元素E set(int index,E element)修改指定索引处的元素返回被修改的元素E get(int index)返回指定索引处的元素package com.javadan.mylist; import java.util.ArrayList; import java.util.List; public class A01_ListDemo1 { public static void main(String[] args) { //1.创建一个集合 ListString list new ArrayList(); //2.添加元素 list.add(aaa); list.add(bbb); list.add(ccc); //在集合指定位置插入元素 //细节原来索引上的元素会依次后移 list.add(1,QQQ); //删除指定索引上的元素返回被删除元素 String remove list.remove(0); System.out.println(remove); //修改指定索引处的元素返回被修改的元素 String result list.set(0,QQQ); System.out.println(result); //返回指定索引元素 String s list.get(2); System.out.println(s); //打印集合 System.out.println(list); } }package com.javadan.mylist; import java.util.ArrayList; import java.util.List; public class A02_ListDemo2 { public static void main(String[] args) { //List系列集合中的俩个删除的方法 //1.直接删除元素 //2.通过索引删除元素 ListInteger list new ArrayList(); list.add(1); list.add(2); list.add(3); //在调用方法时如果出现了重载 // 优先调用实惨跟形参一致的方法 list.remove(1); System.out.println(list); //手动装箱手动把基本数据类型的1变成Integer类型 Integer i Integer.valueOf(1); list.remove(i); System.out.println(list); } }List集合的遍历方式迭代器遍历列表迭代器遍历增强for遍历Lambda表达式遍历普通for循环因为List集合存在索引package com.javadan.mylist; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; public class A03_ListDemo3 { public static void main(String[] args) { ListString list new ArrayList(); list.add(aaa); list.add(bbb); list.add(ccc); list.add(ddd); //1.迭代器 IteratorString it list.iterator(); while(it.hasNext()){ String str it.next(); System.out.println(str); } System.out.println(-----------); //2.增强for for (String s : list) { System.out.println(s); } System.out.println(-----------); //3.Lambda表达式 list.forEach(s- System.out.println(s)); System.out.println(-----------); //4.普通for for (int i 0; i list.size(); i) { String s list.get(i); System.out.println(s); } System.out.println(-----------); //5.列表迭代器 //额外添加了一个方法在遍历的工程中可以添加元素 ListIteratorString lit list.listIterator(); while(lit.hasNext()){ String str lit.next(); if(bbb.equals(str)){ lit.add(qqq); } } System.out.println(list); } }五种遍历方式对比迭代器遍历---在遍历的过程中需要删除元素请使用迭代器。列表迭代器---在遍历的过程中需要添加元素请使用列表迭代器。增强for遍历和Lambda表达式---仅仅想遍历那么使用增强for或Lambda表达式。普通for---如果遍历的时候想操作索引可以用普通for。