Clases contenedoras de Java y clases de matrices (explicación detallada)

Tabla de contenido

embalaje

Introducción a la función

Funciones únicas de las clases de embalaje.

clase de matrices

matrices.rellenar() 

matrices.toString() 

matrices.sort()

Ordenar en orden ascendente

Orden descendiente

matrices.equals()

matrices.copyOf()

Arrays.binarySearch()

embalaje

Introducción a la función

La clase contenedora es en realidad el tipo de referencia correspondiente a los 8 tipos de datos básicos.

Tipos de datos básicos Tipo de datos de referencia
byte Byte
corto Corto
En t Entero
largo Largo
carbonizarse Personaje
flotar Flotar
doble Doble
booleano Booleano

¿Por qué necesitas clases contenedoras?

Para darse cuenta de que todo es un objeto, Java proporciona los tipos de referencia correspondientes para 8 tipos básicos.

De hecho, las colecciones y genéricos posteriores solo admiten tipos de empaquetado y no admiten tipos de datos básicos.

Autoboxeo :

Los datos y variables de tipos básicos se pueden asignar directamente a variables de tipos ajustados.

public static void main(String[] args) {
    int num1 = 10;

    // 自动装箱(将int基本数据类变量赋值给包装类型变量)
    Integer a = num1;
    System.out.println(a);
}

Unboxing automático :

Las variables de tipo contenedor se pueden asignar directamente a variables de tipo de datos básico.

public static void main(String[] args) {
    Integer num2 = 100;

    // 自动拆箱(将包装类型变量赋值给基本类型变量)
    int b = num2;
    System.out.println(b);
}

Funciones únicas de las clases de embalaje.

El valor predeterminado de las variables de la clase contenedora puede ser nulo, que es más tolerante a fallos, pero el tipo básico no.

public static void main(String[] args) {
    Integer num3 = null;
}

Puede convertir datos de tipo básico en tipo de cadena (no muy útil)

  • Llame al método toString() para obtener el resultado de la cadena.
  • O llame a Integer.toString (datos de tipo básico).
public static void main(String[] args) {
    Integer number = 100;
    // 方式一
    String result1 = number.toString();
  	// 方式二
  	String result2 = Integer.toString(101);
    // 方式三: 最简单常用
    String result3 = number + "";
  
    System.out.println(result1 + 1); // 1001
    System.out.println(result2 + 1); // 1011
    System.out.println(result3 + 2); // 1002
}

Puede convertir valores de tipo cadena en tipos de datos reales (muy útil)

  • teger.parseInt("entero de tipo cadena")
  • Double.parseDouble("Decimal de tipo cadena").
 String st1 = "123";
 String st2 = "12.123";
 int a = Integer.parseInt(st1);
 double b = Double.parseDouble(st2);
 System.out.println(a+1);//124
 System.out.println(b+1);//13.123

Para convertir números de tipo cadena en datos reales, también podemos llamar al método valueOf de la clase contenedora.

public static void main(String[] args) {
    String strNum1 = "123";
    String strNum2 = "12.123";

    // 字符串转整数
    int intNum = Integer.valueOf(strNum1);
    // 字符串转小数
    double doubleNum = Double.valueOf(strNum2);

    System.out.println(intNum + 1); // 124
    System.out.println(doubleNum + 1); // 13.123
}

clase de matrices

matrices.rellenar() 

Dado un valor específico val, haga que los elementos de toda la matriz o dentro de un determinado rango de subíndice sean val.

 int [] a = new int[10];
 int [] b = new int[8];
 Arrays.fill(a,3);
 Arrays.fill(b,3,7,6);
 for(int x : a)
    System.out.print(x+",");
 System.out.println();
 for(int x : b)
    System.out.print(x+",");

  

matrices.toString() 

Genera rápidamente el contenido de la matriz, pero la salida está marcada con []

int[] a = {1,2,3,4,5};
System.out.println(Arrays.toString(a));
// 输出格式:[1,2,3,4,5]

matrices.sort()

Ordenar en orden ascendente

Función de clasificación de matrices, orden ascendente predeterminado

int[] a = new int[5]{5,4,3,2,1};
Arrays.sort(a); // 1 2 3 4 5
System.out.println(Arrays.toString(a));
// [1,2,3,4,5]

Dos métodos de sobrecarga:

1.Arrays.sort (nombre de la matriz)

2.Arrays.sort (nombre de la matriz, coordenadas iniciales, longitud de clasificación)

Al ordenar cadenas, al igual que C+, se ordena en orden lexicográfico.

Orden descendiente

Para implementar la clasificación descendente, puede usar Collections.reverseOrder() o puede ajustar matrices de tipos.

Sin embalaje

Arrays.sort(a, Collections.reverseOrder());

Paquete

 Integer[] a = {1,4,3,2,5,6,2,3,4};
 Arrays.sort(a,((o1, o2) -> o2 - o1));
 System.out.println(Arrays.toString(a));
 // [6, 5, 4, 4, 3, 3, 2, 2, 1]

matrices.equals()

Compara si el contenido de dos matrices es igual

int[] a = {1,2,3};
int[] b = {1,2,3};
boolean isSame = Arrays.equals(a,b);
//true

Nota: Arrays.equals() compara el contenido de la matriz, mientras que el método a.equals(b) compara los valores de las direcciones.

Nota especial: al comparar la matriz a==b en Java, las direcciones de los dos son

Cuando utilices el contenido de datos de referencia (matrices, cadenas, varias colecciones...) proporcionado por Java en el futuro, debes usar el método igual () para comparar si el contenido es igual, en lugar de usar estúpidamente ==. Porque el funcionario ha reescrito igual(). Si desea comparar clases que usted mismo escribió, como estudiantes ordenados por calificaciones, debe anular el método equals() usted mismo.

matrices.copyOf()

Dos caminos:

1.B matriz = Arrays.copyOf (una matriz, longitud de asignación)

 int [] a = new int[10];
 int [] b;
 Arrays.fill(a,10);
 b = Arrays.copyOf(a,11);//超过赋值长度赋值为0
 System.out.println(Arrays.toString(b));
 //[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0]

2.  Matriz B = Arrays.copyOfRange (matriz A, coordenadas iniciales, longitud de intercepción)

int [] a = new int[10];
int [] b;
Arrays.fill(a,10);
b = Arrays.copyOfRange(a,2,5);
System.out.println(Arrays.toString(b));
//[10, 10, 10]

Arrays.binarySearch()

Busque el valor especificado en la matriz. Si lo encuentra, devuelva el subíndice de este valor.

Si no se encuentra, devuelve -punto de inserción-1 (debe ser un valor negativo);

int[] a = {1,5,6,7};
Arrays.binarySearch(a,2)  //没找到,插入点为1,则返回 -2
Arrays.binarySearch(a,4)  //没找到,插入点为1,则返回 -2
Arrays,binarySearch(a,8)  //没找到,插入点为4,则返回 -5
Arrays.binarySearch(a,5)  //找到了!返回下标 1
只要返回值 ≥ 0 ,就代表找到了。

Música recomendada: Érase una vez escrita a mano

Referencia: Clase de Arrays básica de Java    Métodos comunes de Arrays (explicación súper detallada)

Supongo que te gusta

Origin blog.csdn.net/weixin_74088105/article/details/132624014
Recomendado
Clasificación