文章目录
- 1. 集合体系结构
- 2. Collection集合概述和使用
- 3. Collection集合的遍历
- 4. 小案例分析
- 5. List集合概述和特点
- 6. List集合的特有方法
- 7. 小案例分析
 
1. 集合体系结构
集合体系结构如下所示。在实现时我们需要使用接口的具体实现类。

2. Collection集合概述和使用
1. Collection集合概述:(1) 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素。 (2) JDK不提供此接口的任何直接实现,它提供更具体的子接口Set和List实现。
2. 创建Collection集合的对象:(1) 多态的方式。 (2) 具体的实现类ArrayList。
3. Collection集合常用方法:
| 方法名 | 说明 | 
|---|---|
| boolean add(E e) | 添加元素 | 
| boolean remove(Object o) | 从集合中移除指定元素 | 
| void clean() | 清空集合元素 | 
| boolean contains(Object o) | 判断集合中是否存在指定元素 | 
| boolean isEmpty() | 判断集合是否为空 | 
| int size() | 集合的长度,也就是集合中元素的个数 | 
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo {
    public static void main(String[] args) {
        Collection<String> c=new ArrayList<String >();
        c.add("hello");
        c.add("Java");
        c.add("难学");
        System.out.println(c);//[hello, Java, 难学]
        System.out.println(c.size());//3
        c.remove("hello");
        System.out.println(c);//[Java, 难学]
        System.out.println(c.contains("难学"));//true
        c.clear();
        System.out.println(c);//[]
        System.out.println(c.isEmpty());//true
    }
}
3. Collection集合的遍历
 1. Iterator:迭代器,集合的专用遍历方式。迭代器是通过集合的iterator()方法得到的,所以说它是依赖与集合而存在的。
 2.其中的常用方法:(1) E next():返回迭代中的下一个元素。(2) boolean hasNet():如果迭代具有更多元素,则返回True。
3. 代码块举例:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionDemo {
    public static void main(String[] args) {
        Collection<String> c=new ArrayList<String >();
        c.add("hello");
        c.add("Java");
        c.add("难学");
        Iterator<String> it=c.iterator();
        System.out.println(it.next()); //hello
        System.out.println(it.next()); //Java
        System.out.println(it.next()); //难学
        //System.out.println(it.next()); 会报错
        if(it.hasNext()){  //会判断有没有元素,没有就不执行
            System.out.println(it.next());//没有返回
        }
    }
}
4. 小案例分析

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;
    }
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo {
    public static void main(String[] args) {
        Collection<Student> c=new ArrayList<Student>();
        Student s1=new Student("张三",18);
        Student s2=new Student("李四",19);
        Student s3=new Student("王五",20);
        c.add(s1);
        c.add(s2);
        c.add(s3);
        Iterator<Student> it=c.iterator();
        while(it.hasNext()){
            Student s=it.next();
            System.out.println(s.getName()+" 年龄为:"+s.getAge());
            //张三 年龄为:18
            //李四 年龄为:19
            //王五 年龄为:20
        }
    }
}
5. List集合概述和特点
1. List集合概述:(1) 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素。 (2) 与Set集合不同,列表通常允许重复的元素。
2. List集合特点:(1)有序:存储和取出的元素顺序一致。 (2) 可重复:存储的元素可以重复。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Demo {
    public static void main(String[] args) {
        List<String> c=new ArrayList<String>();
        c.add("s1");
        c.add("s2");
        c.add("s3");
        c.add("s3");
        Iterator<String> it=c.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
            //s1
            //s2
            //s3
            //s3
        }
    }
}
6. List集合的特有方法
| 方法名 | 说明 | 
|---|---|
| void add(int index, E element) | 在此集合中的指定位置插入指定的元素 | 
| E remove(int index) | 删除指定索引处的元素,返回被删除的元素 | 
| E set(int index, E element) | 修改指定索引处的元素,返回被修改的元素 | 
| E get(int index) | 返回指定索引处的元素 | 
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Demo {
    public static void main(String[] args) {
        List<String> c=new ArrayList<String>();
        c.add("s1");
        c.add("s2");
        c.add("s3");
        c.add("s3");
        Iterator<String> it=c.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
            //s1
            //s2
            //s3
            //s3
        }
        c.add(1,"插入");
        System.out.println(c);//输出:[s1, 插入, s2, s3, s3]
        System.out.println(c.remove(1));//输出:插入
        System.out.println(c);//输出:[s1, s2, s3, s3]
        System.out.println(c.set(1,"s22"));//输出:s2
        System.out.println(c);//输出:[s1, s22, s3, s3]
        System.out.println(c.get(3));//输出:s3
    }
}
7. 小案例分析

package BliJava;
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;
    }
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Demo {
    public static void main(String[] args) {
        List<Student> list=new ArrayList<Student>();
        Student s1=new Student("张三",18);
        Student s2=new Student("李四",19);
        Student s3=new Student("王五",20);
        list.add(s1);
        list.add(s2);
        list.add(s3);
        //第一种迭代方式
        Iterator<Student> it=list.iterator();
        while(it.hasNext()){
            Student s=it.next();
            System.out.println(s.getName()+" "+s.getAge());
        }
        //第二种迭代方式
        for(int i=0;i<list.size();i++){
            Student s=list.get(i);
            System.out.println(s.getName()+" "+s.getAge());
        }
        //张三 18
        //李四 19
        //王五 20
        //张三 18
        //李四 19
        //王五 20
    }
}













![命令执行 [BUUCTF 2018]Online Tool1](https://img-blog.csdnimg.cn/direct/c1207e1e50704e06b908bc1cd3c7badd.png)
![[pluginviteimport-analysis] vite 提示jsx语法报错](https://img-blog.csdnimg.cn/img_convert/4568dc90e485318e926bad3bf2e72ad1.png)




