Hablando sobre el principio de Java de ArrayList LinkedList Set y otras colecciones

Hay una palabra en inglés llamada iteración, llamada: Iterable

Obviamente, este es un adjetivo llamado iterable, por lo que la versión jdk1.5 comenzó a introducir dicha interfaz, que se ve muy deslumbrante, muy conceptual y muy reflexiva, lo que le da a la gente asociación ilimitada, pensamiento Con muchas clases que se pueden realizar, parece abrir una puerta y entrar en un mundo nuevo.

 

Esta es la entrada de interfaz para todas las colecciones. Si ve un iterador, significa que todas las colecciones pueden llamar a iteradores. Esto está bien. Por ejemplo, list.iterator (). Xx

 

 

 

 

 

  El método en Iterator está abajo, no hay explicación.

  

 

 

   hasNext () se usa para averiguar si el siguiente miembro de la matriz existe para la clase de implementación, si el siguiente está vacío, si existe o no, ¿se mueve el puntero? No te muevas, por supuesto, el resultado debe ser booleano

   next (), el tipo de retorno es E, que es un miembro en Iterator, lo que significa encontrar el siguiente miembro en la matriz y obtenerlo, el puntero es, sin duda, debe estar en movimiento

   eliminar (), eliminar este miembro,

  forEachRemaining (), originalmente teníamos un forEach, ahora agregamos uno, use el ejemplo: list.iterator (). forEachRemaining (str-> {}) Esta también es una nueva forma de recorrido, el método de escritura es alto, solo jdk1.8

forEach es una nueva forma de atravesar colecciones. Dijiste cómo lo implementó. Lo siento. Su semántica es así. Como un bucle for. Dices que la capa inferior es saltos AJMP de ensamblaje.

Spliterator es un iterador divisible, ¿para qué sirve? ¿Crees que tienes 1 millón de datos, atraviesas de 1 millón a 1 millón de veces, si tu computadora atraviesa 250,000 al mismo tiempo, dividida en cuatro veces, por lo que no mejora en gran medida la eficiencia del recorrido? Este método se utiliza para este propósito, ya que puede atravesarse en paralelo, si lo piensa, ¿no es un recorrido de subprocesos múltiples? ¿Es una puerta nueva?

 

Luego está la colección de subinterfaces <E> de Iterable <E>. ¿Qué hace esta interfaz? No hay disputa, desde jdk1.2, existe una interfaz principal de todas las colecciones

 

 1, size () Obtenga el tamaño de los elementos de la colección

2. Juzgue si isEmpty está vacío

3. Si contiene contiene un objeto

4. Iterador (), ¿está enfermo? La interfaz iterable también tiene dicho método,

5, toArray (), de hecho, es combinar todos los elementos en la matriz en una nueva matriz, el tipo es Object

6 、 add ()

7.remove ()

8.containsAll (), si este juicio contiene otra matriz, retorno booleano

9.addAll ()

10.removeAll (), elimina la submatriz, obviamente un subconjunto de la matriz primaria

11.removeIf (), de hecho, es un método para integrar un elemento remove (), usando expresiones lambda, pero aún tiene que escribir condiciones y eliminar elementos del bucle for. El efecto es el mismo. Es realmente innovador para la innovación. , Tal método, mala legibilidad, insípido

12. retieneTodo (), la colección llama a este método, el parámetro es otra colección, solo el parámetro es un subconjunto de la colección original, el resultado devuelto es verdadero, ¿cómo es que este método no es nuevo?

13.clear (), ¿qué hace este método? ¿Borrar todos los elementos de la colección, indiscutible?

14.equals (), para determinar si los objetos de la colección son iguales, preste atención al valor es igual, el objeto es igual puede usar el signo igual

15.hashCode (), este código hash para calcular la colección de matrices, no es necesario explicarlo

16.spliterator (), esto es lo mismo que Iterable, pero después de la herencia de la interfaz, se vuelve a escribir de nuevo, ¿por qué? Solo de esta manera se pueden reflejar las características de la reescritura. Verá, se escribe Override. El propósito es configurar este método para llamar al iterable () de la clase padre Iterable cuando se llama al divisor.

 17.stream (), este es un stream () similar a Iterator que puede ser paralelo

18.paralleStream (), una especie de gadget paralelo, después de llamar, puede usar operaciones paralelas al máximo, operación muy moderna y genial

Supongo que te gusta

Origin www.cnblogs.com/cyh2009/p/12707003.html
Recomendado
Clasificación