Java- Colecciones general (Colección / Mapa)

Sobre la colección

  Antes de colecciones, utilizamos la matriz de almacenamiento, la matriz puede almacenar tanto el valor de los tipos de datos básicos se pueden almacenar objetos (variable referencia de objeto), pero sólo puede almacenar una colección de objetos.
  Un contenedor conjunto similar de Java, un objeto del mismo tipo (referencias a objetos reales) se almacenan juntos, para formar un conjunto. El artículo anterior, hemos de introducir, Java después de 5 genéricos añadido, colecciones de Java pueden especificar un tipo de objeto determinado.
  La interfaz básica es clases de colección e interfaces Java interfaces de Colección de mapa. La interfaz tiene dos métodos básicos: add()y iterator()métodos.

public interface Collection<E> {
	boolean add(E element);
	Iterator<E> iterator();
	...
}

En donde el add()método se utiliza para añadir un elemento a la colección, el cambio de cobro si elemento adicional, return true; por el contrario, devuelve falso. Si, cuando el conjunto de elementos que han de añadirse ya existe, añade de nuevo, vuelve falsa. iterator()El método devuelve un objeto que implementa la interfaz Iterator, utilizando el objeto iterador en el acceso a su vez una colección de elementos.

sistema de recolección

sistema de recogida de árbol de herencia Colección

Aquí Insertar imagen Descripción
sistema de colección, sistema en nombre de las colecciones desordenadas; Lista representantes conjunto ordenado; cola representa el conjunto de colas.

colección de mapas árbol de herencia del sistema

Aquí Insertar imagen Descripción
Mapa del sistema, los datos almacenados tiene una relación de correspondencia (clave-valor) es, la clave del mapa no se repetirá.

CLASIFICACIÓN

  • Set: conjunto aleatorio, no repetible;
  • Lista: ordenadas, colecciones duplicadas;
  • Cola: conjunto de colas;
  • Mapa: Hay un conjunto de asignaciones;

método común de recogida

  • boolean add(E e): Se añadió a una colección de elementos, si una colección ha cambiado, vuelve verdadera, por el contrario, devuelve false.
  • boolean addAll(Collection<? extends E> c): Añadir todos los elementos del conjunto a un conjunto específico de c, si el conjunto de cambios, de vuelta verdad, por el contrario, devuelve falso.
  • void clear(): Borrar todos los elementos en el conjunto, un conjunto de longitud cero.
  • boolean remove(Object o): Retire el elemento especificado de la colección O, cuando el elemento de recogida comprende uno o más O, elimina sólo el primer elemento de adaptación, y volver cierto.
  • boolean removeAll(Collection<?> c);: Retire todos los elementos en el conjunto de este conjunto C igual diferenciación conjunto, y si una eliminación o más elementos, devuelve cierto.
  • boolean contains(Object o): O determinar si existe un elemento especificado dentro del conjunto, si está presente, devuelve true; por el contrario, devuelve false.
  • boolean containsAll(Collection<?> c): Determinación de si todos los elementos contenidos dentro del conjunto del conjunto de C que, si se incluye, de regreso verdadera, por el contrario, devuelve falso.
  • boolean isEmpty(): Determina si el conjunto está vacío, si está vacía, devuelve cierto, por el contrario, devuelve falso. Longitud establecida a 0, que está vacía.
  • Iterator iterator(): Devuelve objetos un iterador, atraviesan la colección de elementos.
  • int size(): Devuelve el número de elementos en el conjunto;
  • Object[] toArray(): El conjunto se convierte en una matriz de todos los elementos se convierte en un conjunto correspondiente de elementos de matriz.

Las expresiones lambda a través de la colección

   interfaz Java 8 iterador introducido en las expresiones lambda: forEach(Consumer<? super T> action)cuando el método es llamada para recorrer la colección de elementos, los elementos se pasan a una colección Consumer接口de accept(T t)métodos y de los consumidores es 函数式接口, por lo que esta es una 函数式编程.
Fuente de la siguiente manera:

    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

En el que el retuireNonNull(T obj)método de objeto, código fuente es el siguiente:

    public static <T> T requireNonNull(T obj) {
       if (obj == null)
           throw new NullPointerException();
       return obj;
   }

ejemplo práctico

public class DemoApplication {

   public static void main(String[] args) {

       Collection collection = new ArrayList();
       // 添加元素
       collection.add("add()方法");
       collection.add(1);
       collection.add(2.7);
       collection.add("value1");
       collection.add("value2");

       System.out.println("collection 集合元素为:" + collection);
       
       //lambda表达式遍历
       collection.forEach(c -> System.out.println("forEach: " + c.toString()));

       // 删除指定元素
       System.out.println("删除指定元素1:" + collection.remove(1));
       System.out.println("删除指定元素2:" + collection.remove(2));

       //判断是否包含指定元素
       System.out.println("是否包含2.7:" + collection.contains(2.7));
       System.out.println("是否包含2:" + collection.contains(2));


       //判断是否包含某个集合
       Collection valueSet = new HashSet();
       valueSet.add("value1");
       valueSet.add("value2");
       System.out.println("是否包含集合: " + collection.containsAll(valueSet));

       //求差集:去除另一个集合的所有元素
       collection.removeAll(valueSet);
       System.out.println("求差集后:" + collection);

       //清空集合元素
       collection.clear();
       System.out.println("清空集合后: " + collection);

       //集合长度
       System.out.println("集合长度: " + collection.size());

       //求交集:只保留另一个集合的元素
       valueSet.retainAll(collection);
       System.out.println("求交集: " + valueSet);
       }
}

El resultado:

collection 集合元素为:[add()方法, 1, 2.7, value1, value2]
forEach: add()方法
forEach: 1
forEach: 2.7
forEach: value1
forEach: value2
删除指定元素1:true
删除指定元素2:false
是否包含2.7:true
是否包含2:false
是否包含集合: true
求差集后:[add()方法, 2.7]
清空集合后: []
集合长度: 0
求交集: []

Los libros de referencia
"locura de Java"
"Java tecnología de la base de volumen"

Supongo que te gusta

Origin www.cnblogs.com/Andya/p/12548619.html
Recomendado
Clasificación