API de Java: Día 07 【】 ArrayList

En primer lugar, la introducción de ArrayList

1, la introducción de - una matriz de objetos

Definir una matriz, para el almacenamiento de objetos Persona 3

day07.demo04 paquete; 

/ * 
Título: 
definir una matriz, para almacenar tres objetos persona. 

Matriz tiene un inconveniente: Una vez creada, la longitud no puede cambiar durante la ejecución del programa se produce. 
 * / 

Public clase Demo01Array { 
    void main (String [] args) public static { 
        // crear una primera matriz de longitud 3, que se utiliza para almacenar el tipo de objeto Persona 
        Persona [] = nueva nueva persona Array [3]; 

        persona una = nueva persona ( "Dilly Reba", 18 es); 
        la Persona DOS = new Persona ( "Gülnezer Bextiyar", 28); 
        la Persona Tres = new Persona ( "Martha Jah", 38); 

        // uno entre valor de dirección asignada a la posiciones de los elementos de matriz 0 
        array [0] = Uno; 
        array [. 1] = dos; 
        array [2] = Tres; 

        System.out.println (array [0]); // valor de la dirección 
        del sistema. out.println (array [1]); // valor de dirección
        System.out.println (array [2]); // valor de dirección

        System.out.println (array [1] .getName ( )); // Gülnezer Bextiyar 
    } 
}

Los resultados operativos

"C: \ Archivos de programa \ Java \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 63511: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2019,2 \ bin" -Dfile.encoding = UTF-8 -classpath C: \ java \ JavaApps \ out \ producción \ JavaApps day07.demo04.Demo01Array 
day07.demo04.Person@10f87f48 
day07.demo04.Person@b4c966a 
day07.demo04.Person@2f4d3709 
古力娜扎

proceso terminó con código de salida 0

Hasta el momento, queremos almacenar datos de objeto, seleccione el contenedor, solamente una matriz de objetos. La longitud de la matriz es fija y no puede adaptarse a los requisitos cambiantes de datos. Para resolver este problema,

Java proporciona otras colecciones java.util.ArrayList contenedor, de modo que podamos más conveniente para almacenar y manipular objetos de datos.

2. ¿Cuál es la clase ArrayList

java.util.ArrayList conseguir un tamaño variable de la matriz, incluyendo el elemento de almacenamiento de datos se llama. Tales métodos proporcionan para el almacenamiento interno de los elementos operativos. ArrayList puede seguir añadiendo elementos, su tamaño también aumenta automáticamente.

3, ArrayList usando el procedimiento

vista de clase

java.util.ArrayList <E>: después de la introducción de dicha necesidad de importación a hacer uso.

<E>, representa uno de los tipos de datos especificada, llamada genérica. E, tomado de Element (elementos) de la primera letra. E aparece en lugar de, utilizamos un tipo de datos de referencia puede sustituirlo, lo que significa que vamos a almacenar elementos de tipo de referencia. Código es el siguiente:

ArrayList <String>, ArrayList <Estudiante>

Ver constructor

ArrayList pública (): un contenido está configurado para conjunto vacío.

El formato básico:

ArrayList <String> lista = new ArrayList <String> ();

Después de JDK 7, los soportes en ángulo recto dentro de la genérica pueden estar en blanco izquierda, pero <> Todavía escribir. formato simplificado:

ArrayList <String> lista = new ArrayList <> ();

Método miembro de vista

add public boolean (E e): el elemento especificado al final de la colección.

Parámetro E e, al construir objeto ArrayList, <E> especifica qué tipo de datos, a continuación, añadir (E e) del método, el objeto puede añadir lo que los tipos de datos.

Persona

day07.demo04 empaquetar; 

Persona {public class 
    private String nombre; 
    int edad privada; 

    persona pública () { 
    } 

    persona pública (String nombre, edad int) { 
        this.name = nombre; 
        this.age = edad; 
    } 

    GetNombre public String () { 
        nombre de retorno; 
    } 

    Pública setName void (String nombre) { 
        this.name = nombre; 
    } 

    Public int getAge () { 
        edad de retorno; 
    } 

    Pública setAge vacío (int edad) { 
        this.age = edad; 
    } 
}

Categoría de prueba

day07.demo04 paquete; 

Importación de java.util.ArrayList; 

/ * 
longitud de la matriz no se puede cambiar. 
ArrayList pero la duración se puede fijar arbitrariamente cambiado. 

Para ArrayList, hay un soporte en ángulo <E> Representante genérico. 
Genérico: todos los elementos que se instala en la colecta entre todos qué tipo de uniforme. 
Nota: Los genéricos sólo puede ser un tipo de referencia, no un tipo básico. 

Nota: 
Para la colección ArrayList, no se obtiene el valor de la dirección de impresión directa, pero el contenido. 
Si el contenido está vacío, los soportes vacíos resultantes: [] 
 * / 

Demo02ArrayList public class { 
    void main (String [] args) public static { 
        // crear una colección ArrayList, el nombre de la colección es una lista, que está lleno de todo cadena es del tipo cadena de datos 
        // Nota: comenzando con JDK 1.7+ dentro de paréntesis angulares en el lado derecho no se puede escribir el contenido, pero <> en sí o de escritura. 
        El ArrayList <String> = new nueva lista ArrayList <> (); 
        System.out.println (Lista); // [] 

        // añadir algunos datos para ajustar ellos, la necesidad de usar el método add. 
        list.add ( "Zhao Liying");
        System.out.println (lista); // [Zhao Liying] 

        List.add ( "Dilly Reba"); 
        List.add ( "Gülnezer Bextiyar"); 
        List.add ( "Jah Martha"); 
        System.out.println (lista); // [Zhao Liying, Dilly Reba, Coulee Nazha, Martha Zaha] 

// list.add (100); // error de escritura! Debido a la hora de crear los soportes de ángulo que se ha dicho genéricos es una cadena, el elemento debe ser añadido a la misma son cadenas trabajo 
    } 

}

Los resultados operativos

"C: \ Archivos de programa \ Java \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 49789: C: \ Archivos de programa \ \ JetBrains IntelliJ IDEA 2.019,2 \ bin" 8 -Dfile.encoding = UTF - ruta de clase C:. \ Java \ JavaApps \ OUT \ producción \ JavaApps day07.demo04.Demo02ArrayList 
[] 
[Zhao Liying] 
[Zhao Liying, Dilly Reba, antigua nazha fuerza, Martha Zaha] 

Proceso terminado con código de salida 0

En segundo lugar, los métodos convencionales y traverse

1, la operación de los elementos encarnado sustancialmente en - añadir, borrar, buscar. Comúnmente métodos utilizados son:

  1. add public boolean (E e): el elemento especificado al final de la colección.
  2. E pública remove (int index): Quita el elemento en la posición especificada en esta colección. Devuelve el elemento que desea eliminar.
  3. E pública get (int index): devuelve el elemento de recogida en la ubicación especificada. Devuelve el elemento obtenido.
  4. Tamaño public int (): Devuelve el número de elementos de este conjunto. Atravesando un intervalo de índice de recogida puede ser controlada, para evitar transfronteriza.

2, un ejemplo de código método común

day07.demo04 paquete; 

Importación de java.util.ArrayList; 

/ * 
Los métodos más comunes se encuentran entre ArrayList: 

Boolean pública el botón Añadir (E E): que se suman los elementos de la colección, y el mismo tipo de parámetros genéricos. El valor de retorno representa el complemento tiene éxito. 
Nota: Para la colección ArrayList es, añadir a añadir un poco de acción tiene éxito, el valor devuelto puede ser o no. 
Sin embargo, para otras colecciones de aprendizaje (futuro) para, podrás invitar a las acciones no son necesariamente exitosa. 

pública E get (int index): obtenido a partir de entre un conjunto de elementos, el parámetro es el número de índice, el valor de retorno es el elemento correspondiente a la posición. 

E Retire pública (int index): eliminarlos del conjunto de elementos, parámetro es el número de índice, el valor de retorno es ser elementos eliminados. 

Tamaño public int (): Obtener el conjunto dimensión de longitud, el valor de retorno es el número de elementos contenidos en la colección. 
 * / 

Demo03ArrayListMethod Clase pública { 
    void main (String [] args) {public static 
        ArrayList <String> = new nueva lista ArrayList <> (); 
        System.out.println (Lista); // [] 

        // añadir elementos a la colección : la opción Agregar 
        booleano = éxito list.add ( "Liu Yan");
        System.out.println (lista); // [Liu Yan] 
        System.out.println ( "Añadir el éxito de la acción:" El éxito +); // true 

        list.add ( "redonda de alto"); 
        list.add ( "Chao "); 
        List.add (" Lu Lu "); 
        List.add (" Jia Nailiang "); 
        System.out.println (Lista); // [Liu Yan, GaoYuanYuan, Chao, Lu Lu, Jia Nailiang] 

        // Obtener elemento de la colección : conseguir. valor de índice a partir de 0 
        String name = List.get (2); 
        System.out.println ( "posición de índice No. 2:" + nombre); // Chao 

        elementos // quitar de la colección: remove. los valores de índice empiezan desde cero. 
        List.remove whoRemoved = String (3); 
        System.out.println ( "se eliminan People:" + whoRemoved); // Lu Lu 
        System.out.println (lista); // [Liu Yan, Gao Yuanyuan, Zhao Ting,

        System.out.println ( "longitud conjunto es:" + tamaño); 
    } 
}

Los resultados operativos

"C: \ Archivos de programa \ Java \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 63549: C: \ Archivos de programa \ \ JetBrains IntelliJ IDEA 2.019,2 \ bin "-Dfile.encoding = UTF-8 -classpath C: \ Java \ JavaApps \ OUT \ Producción de \ JavaApps day07.demo04.Demo03ArrayListMethod 
[] 
[Liu Yan] 
Añadir la acción se ha realizado correctamente: true 
[Liu Yan redonda de alto, Chao, Lu Lu, Jia Nailiang] 
No. posición 2 index: Chao 
se suprimieron son: Lu Lu 
[Liu Yan, GaoYuanYuan, Chao, Jia Nailiang] 
conjunto longitud es :. 4 

Proceso de Acabado con código de salida 0

3, a través de la colección

Ejemplo de código

day07.demo04 empaquetar; 
java.util.ArrayList importación; 

Demo04ArrayListEach public class { 
    public static void main (String [] args) { 
        ArrayList <String> list = new ArrayList <> (); 
        list.add ( "迪丽热巴"); 
        list.add ( "古力娜扎"); 
        list.add ( "玛尔扎哈"); 

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

Los resultados operativos

"C: \ Archivos de programa \ Java \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 63559: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2019,2 \ bin" -Dfile.encoding = UTF-8 -classpath C: \ java \ JavaApps \ out \ producción \ JavaApps day07.demo04.Demo04ArrayListEach 
迪丽热巴
古力娜扎
玛尔扎哈

procesar acabado con el código de salida 0

En tercer lugar, la forma de almacenar tipos de datos básicos

objeto ArrayList no se puede almacenar tipos básicos, el tipo de datos almacenados referencia solamente. <Int> no se puede escribir, el tipo de memoria que corresponde al tipo de datos básicos de los envases son posibles similar.

Por lo tanto, desea almacenar tipos básicos de datos con el fin de escribir el tipo de datos en <>, debe ser convertido, la conversión redactado como sigue:

Se encontró que sólo Entero y Carácter requieren memoria especial, pero otros tipos básicos se pueden capitalizar. Así tipos básicos de almacenamiento de datos,

day07.demo04 paquete; 

/ * 
"empaquetar" si desea establecer ArrayList que almacena tipos básicos de datos, debe utilizar sustancialmente corresponde al tipo de 

Los tipos básicos de envasado (tipo de referencia, que se encuentra en el paquete de la clase contenedora java.lang) 
Byte Byte 
Corto Corto 
entero ENT [especial] 
Long Long 
un flotador del flotador 
Doble Doble 
personaje Char [especial] 
booleano booleano 

de JDK 1.5 + soporte autoboxing desempaquetado automático. 

Autoboxing: tipos básicos -> embalaje Tipo 
automático desembalaje: el embalaje Tipo -> tipos básicos 
 * / 

Importación de java.util.ArrayList; 

public class Demo05ArrayListBasic { 
    void main (String [] args) {public static 
        ArrayList <String> ArrayList = new nueva listaA <> (); 
        // error de escritura! Los genéricos sólo puede ser un tipo de referencia, no un tipo básico
// ArrayList <int> listaB = new ArrayList <> (); 

        ArrayList <Integer> LISTC = new ArrayList <> (); 
        listC.add (100); 
        listC.add (200); 
        System.out.println (LISTC); // [100, 200] 

        int num = listC.get (1); 
        System.out.println ( "第1号元素是:" + num); 
    } 
}

Los resultados operativos

"C: \ Archivos de programa \ Java \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 63567: C: \ Archivos de programa \ JetBrains \ IDEA IntelliJ 2019,2 \ bin" -Dfile.encoding = UTF-8 -classpath C: \ java \ JavaApps \ out \ producción \ JavaApps day07.demo04.Demo05ArrayListBasic 
[100, 200] 
第1号元素是: 200 

Proceso de acabado con el código de salida 0

Cuatro, la práctica ArrayList

1, el valor añadido al conjunto

Generar un entero aleatorio entre 1 y 6 a 33, añadido a la colección, y a través de la colección.

day07.demo05 paquete; 

Importación de java.util.ArrayList; 
Importación java.util.Random; 

/ * 
Título: 
generar un entero aleatorio entre 1 y 6 a 33, añadido a la colección, y a través de la colección. 

Ideas: 
1. 6 dígitos necesidad de almacenar, para crear una colección, <Integer> 
2. genera un número aleatorio, necesidad de utilizar las azar 
3. 6 ciclos utilizados para generar números aleatorios: 6 de bucle 
llamadas dentro de R 4. ciclo. nextInt (int n), el parámetro es 33,0 a 32, 1 a 33 está integralmente 1 
5. el número añadido a la colección: el Agregar 
6. el conjunto traverse: para, tamaño, GET 
 * / 

Demo01ArrayListRandom clase pública { 
    public static void Main (args String []) { 
        Lista nuevo nuevo = el ArrayList la ArrayList <Integer> <> (); 
        el Random R & lt nuevo nuevo = el Random (); 
        for (int i = 0;. I <6; I ++) { 
            int num = r.nextInt (33 es) + 1;. 
            List.add (NUM); 
        }
        //遍历集合
        for (int i = 0; i <list.size (); i ++) { 
            System.out.println (list.get (i)); 
        } 
    } 
}

Los resultados operativos

"C: \ Archivos de programa \ Java \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 63579: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2019,2 \ bin" -Dfile.encoding = UTF-8 -classpath C: \ java \ JavaApps \ out \ producción \ JavaApps day07.demo05.Demo01ArrayListRandom 
15 
7 
32 
3 
15 
17 

Proceso de acabado con código de salida 0

2, los objetos a la colección

Personalizado 4 estudiante se opone a la colección, e iterar.

day07.demo05 Package Multa por; 

Importación java.util.ArrayList; 

/ * 
Título: 
Custom cuatro estudiantes se opone a la colección, e iterar. 

Ideas: 
1. clase estudiante Estudiante personalizado, cuatro secciones. 
2. Crear una colección de objetos que se utilizan para almacenar los estudiantes. Genéricos: <Estudiante> 
3. De acuerdo con la clase, los estudiantes crean cuatro objetos. 
4. Añadir los cuatro estudiantes se oponen a la colección: el Add 
5. El conjunto de desplazamiento: para, tamaño, GET 
 * / 

Demo02ArrayListStudent public class { 

    void main (String [] args) public static { 
        ArrayList <Estudiante> = new nueva lista ArrayList <> (); 

        Estudiante Estudiante Uno nuevas nuevas = ( "Hong Chi Kung", 20 es); 
        Estudiante Estudiante nuevas nuevas DOS = ( "Ouyang Feng", 21 es); 
        Estudiante Estudiante Tres nuevos nuevos = ( "compro", 22 es); 
        Estudiante Cuatro nuevos nuevos = estudiante ( "Duan Zhixing", 23); 

        list.add (Uno); 
        Lista.
        list.add (tres); 
        list.add (cuatro); 

        //遍历集合
        for (int i = 0; i <list.size (); i ++) { 
            Student Stu = list.get (i); 
            System.out.println ( "姓名:" + stu.getName () + "年龄" + stu.getAge ()); 
        } 
    } 
}

  Los resultados operativos

"C: \ Archivos de programa \ Java \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 63586: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2019,2 \ bin "-Dfile.encoding = UTF-8 -classpath C: \ java \ JavaApps \ out \ producción \ JavaApps day07.demo05.Demo02ArrayListStudent 
nombre: Qigong, edad 20 
nombre: Ouyang Feng, edad 21 
nombre: compro, edad 22 
nombre: Duan Zhixing, edad 23 

Proceso de Acabado con código de salida 0

3, la impresión de conjunto método

El método definido en el conjunto de formato de impresión especificado (el tipo ArrayList como un parámetro), excepto que {} de un conjunto de propagación, utilizando @ separar cada elemento. Formato elemento refiriéndose @ @ elemento {elemento}.

day07.demo05 paquete; 

Importación de java.util.ArrayList; 

/ * 
Título: 
Método (del tipo ArrayList como un parámetro) se define para especificar el conjunto de formatos de impresión con {} a partir de un conjunto de difundir, usando @ separar cada elemento. 
Formato elemento refiriéndose @ @ elemento {elemento}. 

System.out.println (Lista); [10, 20 es, 30] 
printArrayList (Lista); @ 20 es 10 {30} @ 
 * / 

Demo03ArrayListPrint public class { 
    void Main (args String []) {public static 
        ArrayList <String> Lista ArrayList nuevos nuevos = <> (); 
        List.add ( "Zhang San"); 
        List.add ( "Yuanqiao"); 
        List.add ( "Zhang Wuji"); 
        List.add ( "Cuishan"); 
        System.out.println ( lista); // [Zhang San, Yuanqiao, zhangwuji, Cuishan] 

        printArrayList (lista); 
    } 

    / * 
    los tres elementos método definido
    Valor devuelto Tipo: se imprime solamente, ninguna operación, ningún resultado, por lo tanto utilizar vacío 
    Nombre de método: printArrayList 
    lista de parámetros: ArrayList 
     * / 
    public static printArrayList vacío (ArrayList <String> Lista) { 
        // {30} @ 10 @ 20 es 
        el Sistema .out.print ( "{"); 
        for (int i = 0; I <list.size (); ++ I) { 
            String name = List.get (I); 
            . IF (I list.size == () - 1 ) { 
                System.out.println (nombre + "}"); 
            } {else 
                de System.out.print (nombre + "@"); 
            } 
        } 
    } 
}

Los resultados operativos

"C: \ Archivos de programa \ Java \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 63596: C: \ Archivos de programa \ \ JetBrains IntelliJ IDEA 2.019,2 \ bin" 8 -Dfile.encoding = UTF - ruta de clase C:. \ Java \ JavaApps \ OUT \ producción \ JavaApps day07.demo05.Demo03ArrayListPrint 
[Zhang San, Yuanqiao, zhangwuji, Cuishan] 
{Zhang San @ @ Yuanqiao Zhang Wuji @ Cuishan} 

Proceso terminado con código de salida 0

4, el método de recogida de obtener

Con una gran colección de números aleatorios se almacena en 20, y luego filtrada para los elementos pares, en el que pequeña colección. Se requiere el uso de un método personalizado para implementar el cribado

day07.demo05 paquete; 


Importación de java.util.ArrayList; 
Importación java.util.Random; 

/ * 
Título: 
con una gran colección de números aleatorios se almacena en 20, y luego seleccionados para los elementos pares, en el que pequeña colección. 
El método se implementa requiere el uso de un filtro personalizado. 

Análisis: 
1. La necesidad de crear una gran colección, que se utiliza para almacenar int digitales: <Integer> 
2. aleatoria nextInt con un número aleatorio a 
3. 20 ciclos, poner en una gran colección de números aleatorios: bucle, el método Add 
4. Definir una El método utilizado para el cribado. 
Screening: De acuerdo con una gran colección, el cribado elementos en línea con los requisitos para obtener un pequeño conjunto. 
Tres elementos 
Valor devuelto Tipo: pequeño conjunto ArrayList (el número de elementos de incertidumbre en el interior) 
Nombre del método: getSmallList 
lista de parámetros: gran ArrayList recogida (20 lleno de números aleatorios) 
5. Analizar (SI) es un número par: NUM% 2 == 0 
. 6 Si es par, a continuación, poner una pequeña colección de ellos, de lo contrario sostener. 
 * / 

Pública clase Demo04ArrayListReturn { 
    void main (String [] args) {public static 
        ArrayList <Integer> = new nueva bigList ArrayList <> ();bigList.size (); i ++) {



            int num = bigList.get (i); 
            si (num% 2 == 0) { 
                smallList.add (num); 
            } 
        } 
        Volver smallList; 
    } 
}

Los resultados operativos

"C: \ Archivos de programa \ Java \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 63612: C: \ Archivos de programa \ JetBrains \ IntelliJ IDEA 2019,2 \ bin" -Dfile.encoding = UTF-8 -classpath C: \ java \ JavaApps \ out \ producción \ JavaApps day07.demo05.Demo04ArrayListReturn 
偶数总共有多少个: 9 
66 
8 
34 
58 
54 
4 
28 
22 
14 

Proceso de acabado con código de salida 0

Supongo que te gusta

Origin www.cnblogs.com/luoahong/p/12618682.html
Recomendado
Clasificación