Análisis en profundidad de Java SE 046 Iterator, TreeSet y Comparator

(1) Mientras una persona no se rinda a sí misma, el mundo entero no se dará por vencido contigo.
(2) Nací para ser de gran utilidad . (3) Si no
puedo soportar el sufrimiento del aprendizaje, debo soportar el sufrimiento de la vida. Qué doloroso es Comprensión profunda.
(4) Debes ganar al hacer cosas difíciles . (
5) El espíritu es la verdadera espada.
(6) Conquistar oponentes dos veces, la primera vez en el corazón.
(7) Escribir no es realmente fácil. Si te gusta o tienes algo para ti Ayuda a recordar que te gusta + seguir o marcar como favorito ~

Análisis en profundidad de Java SE 046 Iterator, TreeSet y Comparator

1. Utilice funciones iterativas

Antes de utilizar la función iterativa para acceder a la colección, se debe obtener una función iterativa. Cada clase Collection proporciona una función iterator (), que devuelve una función iterativa al encabezado de la colección. Al utilizar este objeto de función de iteración, puede acceder a todos los elementos del conjunto de clases, un elemento a la vez. Por lo general, la función iterativa se usa para recorrer el contenido del clúster, y los pasos son los siguientes:
(1) Obtenga la función iterativa del encabezado del clúster llamando al método iterator () del clúster.
(2) Establezca un bucle que llame al método hashNext (). Siempre que hashNext () devuelva verdadero, itere los bucles.
(3) Dentro del ciclo, cada elemento se obtiene llamando al método next ().

package com.javase.hashset;

import java.util.HashSet;
import java.util.Iterator;

public class SetTest4 {
    
    
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
    
    
		HashSet set = new HashSet();
		set.add("a");
		set.add("b");
		set.add("c");
		set.add("d");
		set.add("e");
		
		for(Iterator iter = set.iterator(); iter.hasNext();){
    
    
			String value = (String)iter.next();
			System.out.println(value);
		}
	}
}

2.Conjunto de árboles

(1) Clasificación natural (no especifique reglas de clasificación)

package com.javase.hashset;

import java.util.TreeSet;

public class TreeSetTest {
    
    

	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
    
    
		TreeSet set = new TreeSet();
		set.add("c");
		set.add("e");
		set.add("b");
		set.add("d");
		set.add("a");
		set.add("f");
		System.out.println(set);
	}

}

(2) Problemas con el método add de TreeSet
Si el objeto especificado no se puede comparar con los objetos que ya existen en la colección actual, se lanzará una ClassCastException.

package com.javase.hashset;

import java.util.TreeSet;

public class TreeSetTest2 {
    
    

	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
    
    
		TreeSet set = new TreeSet();
		Person p1 = new Person(10);
		Person p2 = new Person(20);
		Person p3 = new Person(30);
		Person p4 = new Person(40);
		Person p5 = new Person(50);
		
		set.add(p1);
		set.add(p2);
		set.add(p3);
		set.add(p4);
		set.add(p5);
		
		System.out.println(set);
	}
	
}

class Person{
    
    
	
	int score;
	
	public Person(int score){
    
    
		this.score = score;
	}
	
	@Override
	public String toString() {
    
    
		return String.valueOf(score);
	}
}

Los objetos personales no son comparables

(3) Para colocar objetos en el TreeSet, y los objetos se pueden comparar, debemos especificar un conjunto de reglas de clasificación, siempre que el objeto en sí no tenga el llamado orden natural. En otras palabras, para El tipo debe especificar claramente una regla de clasificación.
No comparable

(3) Para colocar objetos en el TreeSet, y los objetos se pueden comparar, debemos especificar un conjunto de reglas de clasificación, siempre que el objeto en sí no tenga el llamado orden natural. Es decir, para las El tipo debe especificar claramente una regla de clasificación.

Supongo que te gusta

Origin blog.csdn.net/xiogjie_67/article/details/108540800
Recomendado
Clasificación