[Java] ArrayList (colección) explicación súper detallada

1.Lista de matriz

Comparación de las ventajas de las colecciones y matrices:

  1. Longitud variable
  2. No es necesario tener en cuenta el índice al agregar datos, y los datos se agregan al final de forma predeterminada

1.1 Descripción general de la clase ArrayList

  • que es coleccion

    Proporcione un modelo de almacenamiento con espacio de almacenamiento variable, y la capacidad de datos almacenados se puede cambiar

  • Características de la colección ArrayList

    La capa inferior está implementada por una matriz, y la longitud puede variar

  • uso genérico

    El tipo de datos utilizado para restringir los elementos de almacenamiento en la colección.

1.2 Métodos comunes de la clase ArrayList

1.2.1 Método de construcción

nombre del método ilustrar
ArrayList público () Crear un objeto de colección vacío

1.2.2 Métodos de miembros

nombre del método ilustrar
eliminación booleana pública (Objeto o) Elimine el elemento especificado, devuelva si la eliminación se realizó correctamente
eliminación pública E (índice int) Eliminar el elemento en el índice especificado y devolver el elemento eliminado
conjunto E público (índice int, elemento E) Modificar el elemento en el índice especificado y devolver el elemento modificado
E get público (índice int) Devuelve el elemento en el índice especificado
tamaño int público () Devuelve el número de elementos de la colección.
agregar booleano público (E e) Agrega el elemento especificado al final de esta colección.
public void add (índice int, elemento E) inserta el elemento especificado en la posición especificada en esta colección

1.2.3 Código de muestra

public class ArrayListDemo02 {
    
    
    public static void main(String[] args) {
    
    
        //创建集合
        ArrayList<String> array = new ArrayList<String>();

        //添加元素
        array.add("hello");
        array.add("world");
        array.add("java");

        //public boolean remove(Object o):删除指定的元素,返回删除是否成功
//        System.out.println(array.remove("world"));
//        System.out.println(array.remove("javaee"));

        //public E remove(int index):删除指定索引处的元素,返回被删除的元素
//        System.out.println(array.remove(1));

        //IndexOutOfBoundsException
//        System.out.println(array.remove(3));

        //public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
//        System.out.println(array.set(1,"javaee"));

        //IndexOutOfBoundsException
//        System.out.println(array.set(3,"javaee"));

        //public E get(int index):返回指定索引处的元素
//        System.out.println(array.get(0));
//        System.out.println(array.get(1));
//        System.out.println(array.get(2));
        //System.out.println(array.get(3)); //?????? 自己测试

        //public int size():返回集合中的元素的个数
        System.out.println(array.size());

        //输出集合
        System.out.println("array:" + array);
    }
}

1.3ArrayList almacena cadenas y poligonales

1.3.1 Requisitos del caso

Cree una colección que almacene cadenas, almacene 3 elementos de cadena y use el programa para recorrer la colección en la consola

1.3.2 Implementación del código

/*
    思路:
        1:创建集合对象
        2:往集合中添加字符串对象
        3:遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现
        4:遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
        5:遍历集合的通用格式
 */
public class ArrayListTest01 {
    
    
    public static void main(String[] args) {
    
    
        //创建集合对象
        ArrayList<String> array = new ArrayList<String>();

        //往集合中添加字符串对象
        array.add("刘正风");
        array.add("左冷禅");
        array.add("风清扬");

        //遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
//        System.out.println(array.size());

        //遍历集合的通用格式
        for(int i=0; i<array.size(); i++) {
    
    
            String s = array.get(i);
            System.out.println(s);
        }
    }
}

1.4ArrayList almacena objetos de estudiantes y poligonales

1.4.1 Requisitos del caso

Cree una colección de objetos de estudiantes, almacene 3 objetos de estudiantes y use el programa para recorrer la colección en la consola

1.4.2 Implementación del código

/*
    思路:
        1:定义学生类
        2:创建集合对象
        3:创建学生对象
        4:添加学生对象到集合中
        5:遍历集合,采用通用遍历格式实现
 */
public class ArrayListTest02 {
    
    
    public static void main(String[] args) {
    
    
        //创建集合对象
        ArrayList<Student> array = new ArrayList<>();

        //创建学生对象
        Student s1 = new Student("林青霞", 30);
        Student s2 = new Student("风清扬", 33);
        Student s3 = new Student("张曼玉", 18);

        //添加学生对象到集合中
        array.add(s1);
        array.add(s2);
        array.add(s3);

        //遍历集合,采用通用遍历格式实现
        for (int i = 0; i < array.size(); i++) {
    
    
            Student s = array.get(i);
            System.out.println(s.getName() + "," + s.getAge());
        }
    }
}

1.5ArrayList almacena objetos de estudiantes y atraviesa la versión actualizada

1.5.1 Requisitos del caso

Cree una colección de objetos de estudiantes, almacene 3 objetos de estudiantes y use el programa para recorrer la colección en la consola

​ El nombre y la edad del estudiante provienen de la entrada del teclado

1.5.2 Implementación del código

public class ArrayListTest {
    
    
    public static void main(String[] args) {
    
    
        //1.创建集合对象
        ArrayList<Student> list = new ArrayList<>();
        //2.键盘录入数据并添加到集合中
        Scanner sc = new Scanner(System.in);
        for (int i = 1; i <= 3; i++) {
    
    
            //创建学生对象
            Student s = new Student();
            //键盘录入学生信息
            System.out.println("请输入第" + i + "个学生的姓名");
            String name = sc.next();
            System.out.println("请输入第" + i + "个学生的年龄");
            int age = sc.nextInt();
            //把学生信息赋值给学生对象
            s.setName(name);
            s.setAge(age);
           //把学生对象添加到集合当中
            list.add(s);
        }
        //遍历
        for (int i = 0; i < list.size(); i++) {
    
    
            Student stu = list.get(i);
            System.out.println(stu.getName() + ", " + stu.getAge());
        }


    }
}

1.6 Averiguar si el usuario existe

necesidad:

1. Defina una colección en el método principal y almacene tres objetos de usuario.

Los atributos de usuario son: id, nombre de usuario, contraseña

2. Requisito: Definir un método para encontrar la información del estudiante correspondiente según el id.

Si existe, devuelve verdadero

Si no está presente, devuelve falso

Ejemplo de código:

package com.itheima.test4;

import java.util.ArrayList;

public class ArrayListTest {
    
    
    public static void main(String[] args) {
    
    
        //1.创建集合
        ArrayList<User> list = new ArrayList<>();
        //2.添加用户对象
        User u1 = new User("heima001","zhangsan","123456");
        User u2 = new User("heima002","lisi","1234");
        User u3 = new User("heima003","wangwu","12345");
        //3.添加元素
        list.add(u1);
        list.add(u2);
        list.add(u3);
        //3.根据id查找是否存在
        //调方法
        //如果调用本类中的方法,直接写方法名就可以。
        //如果我要调用其他类中的方法,需要用对象去调用。
        boolean flag = contains(list, "heima004");
        System.out.println(flag);
    }

    //1.我要干嘛? 判断id在集合中是否存在
    //2.需要什么? 集合  id
    //3.是否需要继续使用?需要
    //写在测试类中的方法,加static
    //写在javabean类中的方法,不加static
    public static boolean contains(ArrayList<User> list, String id){
    
    
        for (int i = 0; i < list.size(); i++) {
    
    
            User u = list.get(i);
            String uid = u.getId();
            if(uid.equals(id)){
    
    
                return true;
            }
        }
        //当集合里面所有的元素全部比较完毕了
        //如果此时还不存在,才能返回false
        return false;
    }
}

1.7 Encuentra el índice del usuario

necesidad:

1. Defina una colección en el método principal y almacene tres objetos de usuario.

Los atributos de usuario son: id, nombre de usuario, contraseña

2. Requisito: Definir un método para encontrar la información del estudiante correspondiente según el id.

Si existe, devuelve el índice.

Si no está presente, devuelve -1

Ejemplo de código:

package com.itheima.test5;

import com.itheima.test4.User;

import java.util.ArrayList;

public class ArrayListTest {
    
    
    public static void main(String[] args) {
    
    
        //1.创建集合
        ArrayList<User> list = new ArrayList<>();
        //2.添加用户对象
        User u1 = new User("heima001","zhangsan","123456");
        User u2 = new User("heima002","lisi","1234");
        User u3 = new User("heima003","wangwu","12345");
        //3.添加元素
        list.add(u1);
        list.add(u2);
        list.add(u3);

        //4.查询索引
        int index = findIndex(list, "heima004");
        System.out.println(index);

    }

    //1.我要干嘛?查询索引
    //2.需要什么?集合  id
    //3.是否需要继续使用 需要返回值
    public static int findIndex(ArrayList<User> list, String id){
    
    
        for (int i = 0; i < list.size(); i++) {
    
    
            User u = list.get(i);
            String uid = u.getId();
            if(uid.equals(id)){
    
    
                return i;
            }
        }
        //如果循环结束还没有找到
        return -1;
    }
    public static boolean contains(ArrayList<User> list, String id){
    
    
        int index = findIndex(list, id);
        if(index >= 0){
    
    
            return true;
        }else{
    
    
            return false;
        }
       // return  findIndex(list, id) >= 0;
    }
}

Supongo que te gusta

Origin blog.csdn.net/wanghaoyingand/article/details/130254941
Recomendado
Clasificación