(Comparador) El problema del comparador conduce a

El problema del comparador conduce a

El llamado comparador es para determinar la relación de tamaño, primero analicemos el significado del comparador:

Si desea realizar operaciones de matriz, debe usar la clase de operación java.util.Arrays para completar, esta clase proporciona la mayor parte del soporte de operación de matriz, y también hay una especie de compatibilidad de matriz de objetos en esta clase: public static void sort (Objeto [] a);

Ejemplo: realizar la clasificación de una matriz de objetos

package 开发支持类库;

import java.util.Arrays;

public class 比较器问题的引出 {
	public static void main(String[] args) {
		Integer[] data = new Integer[] {10,8,9,4,3};	//对象数组
		Arrays.sort(data);	//进行对象数组的排序
		System.out.println(Arrays.toString(data));	//输出
	}
}

[3, 4, 8, 9, 10]

Si la matriz dada es una matriz de objetos String, también se puede ordenar.

Ejemplo: ordenar una matriz de objetos String

package 开发支持类库;

import java.util.Arrays;

public class 比较器问题的引出 {
	public static void main(String[] args) {
		String[] data = new String[] {"X","x","中","Y","y"};	//对象数组
		Arrays.sort(data);	//进行对象数组的排序
		System.out.println(Arrays.toString(data));	//输出
	}
}

[X, Y, x, y, 中]

Tanto Java.lang.Integer como java.lang.String son clases de programa proporcionadas por el sistema. Si hay una clase personalizada que deba ordenarse.

Ejemplo: ordenar por tipo personalizado

 

package 开发支持类库;

import java.util.Arrays;

public class 比较器问题的引出 {
	public static void main(String[] args) {
		Person[] data = new Person[] {
				new Person("王五",19),
				new Person("张三",80),
				new Person("李四",41),
				new Person("周一",50)
			};
		Arrays.sort(data);	//进行对象数组的排序
		System.out.println(Arrays.toString(data));	//输出
	}
}

class Person{
	private String name;
	private int age;
	
	public Person(String name,int age) {
		this.name = name;
		this.age = age;
	}
	
	//setter、getter略
	public String toString() {
		return "【Person类对象】姓名:"+this.name +"、年龄:"+this.age;
	}
}

Excepción en el hilo "main" java.lang.ClassCastException: class 开发 支持 类库 .Person no se puede convertir a la clase java.lang.Comparable

Por defecto, cualquier clase no se puede ordenar o comparar usando las clases internas del sistema, porque no hay una definición clara de cómo comparar (no hay una regla de comparación), por lo que en este momento en Java, para unificar las reglas. definición de, por lo que proporciona una interfaz de comparación: Interfaz comparable.

Supongo que te gusta

Origin blog.csdn.net/weixin_46245201/article/details/112603569
Recomendado
Clasificación