Control de proceso de revisión de JAVA, matriz, genérico, colección

1. Para obtener un tutorial detallado, consulte: Estructura del programa (declaración de control de procesos)

Inserte la descripción de la imagen aquí

2. Asuntos que requieren atención:

1. El caso no puede usar tipos de punto flotante.
2. Si encuentra anidación de bucles, la declaración de interrupción solo hará que el programa fluya fuera de la estructura de bucle más interna que lo contiene, es decir, fuera de una capa de bucles.
3. Romper y continuar proporcionando " Función de etiqueta
Inserte la descripción de la imagen aquí

Tres, matriz

Inserte la descripción de la imagen aquí
Ejemplo de análisis de problemas:
una red de 3 x 3, coloque los números del 1 al 9 en la cuadrícula, de modo que el valor de cada fila, columna y cada diagonal pueda ser el mismo.

public class NineGrids {
    
    // 创建NineGrids类
	public static void main(String[] args) {
    
    
		// 声明int类型的数组并分配内存(三阶方阵)
		int arr[][] = new int[3][3];
		// 确定数字“1”的位置
		int a = 2;// 第3行的下标
		int b = 3 / 2;// 第2列的下标
		for (int i = 1; i <= 9; i++) {
    
    // 给数组赋值
			arr[a++][b++] = i;// 避免数组下标越界
			if (i % 3 == 0) {
    
    // 如果i是3的倍数
				a = a - 2;
				b = b - 1;
			} else {
    
    // 如果i不是3的倍数
				a = a % 3;
				b = b % 3;
			}
		}
		System.out.println("九宫格:");
		// 遍历数组
		for (int i = 0; i < 3; i++) {
    
    
			for (int j = 0; j < arr.length; j++) {
    
    
				System.out.print(arr[i][j] + " ");// 输出数组中的数据
			}
			System.out.println();// 换行
		}
	}
}

Cuatro, genérico

(1) ¿Qué es genérico? (Habilite el programa para definir tipos de datos seguros)

El tipo parametrizado en java se llama tipo genérico, la siguiente figura es un ejemplo
Inserte la descripción de la imagen aquí

(2) Definir clases genéricas

** Sintaxis: ** Nombre de clase <tipo parámetro 1, tipo parámetro 2, ... tipo parámetro n> {}

public class Demo<T>{
    
    
	T username;
	T method(T t){
    
    }
}

(Tres) el uso de genéricos

En el proceso de desarrollo, si necesita especificar tipos de parámetros de forma dinámica, debe utilizar genéricos.

1. Declare varios tipos al definir una clase genérica

método de clase <T1, T2>

2. Declare el tipo de matriz al definir una clase genérica

Al definir un tipo genérico, también puede declarar un tipo de matriz

2. La clase de colección declara el tipo de elemento

La aplicación de genéricos en la colección puede garantizar la unicidad de los tipos de elementos de la colección. De esta manera se mejora la seguridad y la capacidad de mantenimiento del código.

(4) Cómo usar genéricos

public class Demo030<T> {
    
    
    T bankName; //银行名称
    T time; //存款时间
    T username; //户名
    T cardNum; //卡号
    T currency; //币种
    T inAccount; //存款金额
    T leftAccount; //账户余额
    public static void main(String[] args) {
    
    
        Demo030<Object> list = new Demo030<Object>(); //创建一个String类型的BankList对象
        list.bankName = "中国建设银行"; //初始化“银行名称”
        list.time = new Date(); //初始化“存款时间”
        list.username = "赵四"; //初始化“户名”
        list.cardNum = "6666 7777 8888 9996 789"; //初始化“卡号”
        list.currency = "RMB"; //初始化“币种”
        list.inAccount = 8888.00; //初始化“存款金额”
        list.leftAccount = 18888.89; //初始化“账户余额”
        DecimalFormat df = new DecimalFormat("###,###.##"); //创建DecimalFormat对象,用来格式化Double类型的对象
        System.out.println(
                "银行名称:" + list.bankName
                        + "\n存款时间:" + list.time
                        + "\n户  名:" + list.username
                        + "\n卡  号:" + list.cardNum
                        + "\n币  种:" + list.currency
                        + "\n存款金额:" + df.format(list.inAccount)
                        + "\n账户余额:" + df.format(list.leftAccount)
        ); //输出上述信息
    }
}

Cinco, el resumen de la colección

(1) ¿Son realmente útiles las matrices? ¿Cuál es la diferencia entre matriz y colección?

No es fácil de usar porque la longitud de la matriz es fija y la longitud de la colección es variable (como un tren, que se puede agregar dinámicamente al vagón). La matriz puede almacenar objetos y tipos de datos básicos. La colección solo puede almacenar objetos. Incluyendo (lista, conjunto y colección de mapas)
Inserte la descripción de la imagen aquí

(2) Métodos comunes y descripciones de la interfaz de colección

Inserte la descripción de la imagen aquí

(Tres) Colección de listas

La colección List incluye la interfaz List y todas las clases de implementación de la interfaz List
. Los elementos de la colección List pueden repetirse, y el orden de los elementos es el orden en que se agregan. El
usuario puede acceder a los elementos de la colección a través del índice
1, la interfaz List
Inserte la descripción de la imagen aquí
2 y la implementación de la interfaz List La clase
①ArrayList guarda los elementos de la colección en forma de matriz y puede acceder a los elementos de la colección de forma aleatoria y rápida según la posición del índice.
②LinkedList guarda los elementos de la colección en una estructura de lista enlazada. El rendimiento de acceder aleatoriamente a los elementos de la colección es deficiente, pero el rendimiento de insertar elementos en la colección y eliminar elementos de la colección es excelente.
List list = new ArrayList <> ();
List list2 = new LinkedList <> ();
Inserte la descripción de la imagen aquí
3. Iterador de iterador (ventajas: atraviesa todos los elementos de la colección y ejecuta de manera eficiente)
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
4. Análisis de caso

import java.util.*;

public class Demo01 {
    
    
    public static void main(String[] args) {
    
    
        //实例化集合类对象
        List<String> list = new ArrayList<>();
        //向集合中添加元素
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("12314213");
        //创建迭代器
        Iterator<String> it = list.iterator();
        //判断是否有下一个元素
        while (it.hasNext()){
    
    
            //获取集合中的元素
            String str = it.next();
            //打印
            System.out.println(str);
        }
    }
}
(4) Colección de conjuntos

Los elementos de la colección Set no se ordenan de una manera específica, simplemente se colocan en la colección y los elementos de la colección Set no se pueden repetir.
Inserte la descripción de la imagen aquí
1. TreeSet (conjunto de árboles, almacenado en orden)
Inserte la descripción de la imagen aquí
2. Métodos agregados de la clase TreeSet
Inserte la descripción de la imagen aquí
Tanto la clase HashSet como la clase TreeSet son clases de implementación de la interfaz Set y ninguna de ellas permite elementos duplicados. Pero la clase HashSet no se preocupa por el orden de los elementos cuando atraviesa los elementos de la colección, mientras que la clase TreeSet atraviesa los elementos de la colección en orden natural (orden ascendente)
3. Análisis de casos

public class Person implements Comparable {
    
    
    int id;
    int age;
    String name;

    @Override
    public int compareTo(Object o) {
    
    
        Person p;
        //判断是否为person类
        if(o instanceof Person){
    
    
            //强制转换
            p = (Person)o;
        }else{
    
    
            //表示传入的参数比我本身要小
            return -1;
        }
        int diff = this.age - p.age;
        if(diff != 0){
    
    
            //差值除以本身绝对值,可以得到+1 或者-1的值
            diff = diff / Math.abs(diff);
        }
        return diff;
    }
    public Person(int id, int age, String name) {
    
    
        this.id = id;
        this.age = age;
        this.name = name;
    }
    @Override
    public String toString() {
    
    
        return "Person{" +
                "id=" + id +
                ", age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}
public class Demo {
    
    
    public static void main(String[] args) {
    
    
        Set set = new TreeSet();
        Person p1 = new Person(1,18,"熊猫");
        Person p2 = new Person(2,33,"小明");
        Person p3 = new Person(3,22,"梦缘");
        //添加到集合
        set.add(p1);
        set.add(p2);
        set.add(p3);
        set.add(p3);//重复的元素不会被添加到集合中
        System.out.println(set.size());

        //创建迭代器
        Iterator it = set.iterator();
        while (it.hasNext()){
    
    
            System.out.println(it.next());
        }
    }
}

Inserte la descripción de la imagen aquí

(5) Colección de mapas

Inserte la descripción de la imagen aquí
método:keySet () devuelve la colección de conjuntos formada por todos los objetos clave en la colección
valores () devuelve la colección de colección formada por todos los objetos de valor en la colección

Inserte la descripción de la imagen aquí
1. Análisis de caso uno

import java.util.*;
public class HashMapTest {
    
    
	public static void main(String[] args) {
    
    
		Map<String, String> map = new HashMap<>(); // 创建Map集合对象
		map.put("ISBN 978-7-5677-8742-1", "Android项目开发实战入门"); // 向Map集合中添加元素
		map.put("ISBN 978-7-5677-8741-4", "C语言项目开发实战入门");
		map.put("ISBN 978-7-5677-9097-1", "PHP项目开发实战入门");
		map.put("ISBN 978-7-5677-8740-7", "Java项目开发实战入门");
		Set<String> set = map.keySet(); // 构建Map集合中所有key的Set集合
		Iterator<String> it = set.iterator(); // 创建Iterator迭代器
		System.out.println("key值:");
		while (it.hasNext()) {
    
     // 遍历并输出Map集合中的key值
			System.out.print(it.next() + " ");
		}
		Collection<String> coll = map.values(); // 构建Map集合中所有value值的集合
		it = coll.iterator();
		System.out.println("\nvalue值:");
		while (it.hasNext()) {
    
     // 遍历并输出Map集合中的value值
			System.out.print(it.next() + " ");
		}
	}
}

Aprende más:Se recomienda usar la clase HashMap para implementar la colección Map, porque la colección Map implementada por la clase HashMap es más eficiente para agregar y eliminar relaciones de mapeo; y si los elementos de la colección Map están en un orden determinado, la clase TreeMap debe usarse para implementar la colección Map.

(6) Resumen

1. La colección List se ocupa de los índices, y los elementos de la colección List se almacenan en orden;
2. La colección Set se ocupa de la unicidad y sus valores no pueden repetirse;
3. La colección Map se ocupa de identificadores únicos (clave) , Asigna una clave única a un elemento;
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/javaScript1997/article/details/108569664
Recomendado
Clasificación