Skip to content

List 集合

1.1 概述

  • 有序集合(也称为序列 )。该界面的用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。

    与set集合不同,列表通常允许重复的元素。 更正式地,列表通常允许元素e1e2成对使得e1.equals(e2) ,并且如果它们允许空元素,它们通常允许多个空元素。 有人可能希望实现一个禁止重复的列表,当用户尝试插入时会抛出运行时异常,但是我们预计这种使用是罕见的。

1.2 创建集合对象

java
    public static void main(String[] args) {
        //创建集合对象
        List<String> list = new ArrayList<String>();

        //添加元素
        list.add("Hello");
        list.add("World");
        list.add("Java");

        //遍历集合,迭代器
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s); //输出结果 Hello World Java
            
        }
    }

2. List 集合的方法

方法名说明
void add ( int index , E element)在此集合中的指定位置插入指定的元素
E remove ( int index)删除指定索引处的元素,返回被删除的元素
E set ( int index , E element)修改指定索引处的元素,返回被修改的元素
E get ( int index)返回指定索引处的元素

2.1 List 集合方法的使用

java
    public static void main(String[] args) {
        //创建集合对象
        List<String> list = new ArrayList<String>();

        //添加元素
        list.add("Hello");
        list.add("World");
        list.add("Java");

        //| void add ( int index , E element) | 在此集合中的指定位置插入指定的元素     |
        //list.add(1,"Javaee"); //输出结果:[Hello, Javaee, World, Java]
        // list.add(10,"Javaee"); //输出结果:IndexOutOfBoundsException

        //| E  remove ( int index)            | 删除指定索引处的元素,返回被删除的元素 |
        //list.remove(1); //输出结果:[Hello, Java]
        //list.remove(10); //输出结果:IndexOutOfBoundsException

        //| E  set ( int index , E element)   | 修改指定索引处的元素,返回被修改的元素 |
        //list.set(1,"Javase"); //输出结果:[Hello, Javase, Java]
        //list.set(10,"Javase"); //输出结果:IndexOutOfBoundsException

        //| E  get ( int index)               | 返回指定索引处的元素                   |
        //String s = list.get(1);
        //System.out.println(s); //输出结果:World

        //String s1 = list.get(10);
        //System.out.println(s1); //输出结果:IndexOutOfBoundsException:

        //输出集合
        //System.out.println(list);

        //遍历集合
        /*
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            String next = it.next();
            System.out.println(next);
        }
        */

        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
    }

3. List 集合学生案例

3.1 学生类

java
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;
    }
}

3.2 学生测试类

java
public class StudentDemo {
    public static void main(String[] args) {
        //创建学生类集合对象
        List<Student> list = new ArrayList<Student>();
        Student s1 = new Student("张嘉圣杰", 22);
        Student s2 = new Student("张飘飘", 21);
        Student s3 = new Student();
        s3.setName("佳洁");
        s3.setAge(20);

        //把信息添加到集合中
        list.add(s1);
        list.add(s2);
        list.add(s3);

        //遍历集合
        Iterator<Student> it = list.iterator();
        while (it.hasNext()) {
            Student next = it.next();
            System.out.println(next.getName() + "," + next.getAge());
        } // 输出结果:张嘉圣杰,22   张飘飘,21   佳洁,20

        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            System.out.println(s.getName() + "," + s.getAge());
        } // 输出结果:张嘉圣杰,22   张飘飘,21   佳洁,20

    }
}