1. Panorama general
El sistema de recopilación de Java se divide en dos partes: Collection
y Map
.
-Las sub-interfaces comunes bajo la interfaz de Colección son List
, Set
interfaz.
Hay en -List interfaces ArrayList, LinkedList, Vector otra clase de implementación;
allí HashSet, LinkedHashSet, TreeSet otra clase que implementa la interfaz bajo -Set;
- y Map接口
allí abajo HashMap, TreeMap, Hashtable otra clase de implementación.
Para obtener más información, consulte la documentación de ayuda de JavaSE.
2. Interfaz de recopilación
1 lista
Características: Los elementos están ordenados y son repetibles
- ArrayList
: La estructura subyacente es una matriz, que es rápida en la consulta y lenta en la adición y eliminación. Al mismo tiempo, los hilos no son seguros, sino eficientes.
- LinkedList
: La estructura subyacente es una lista vinculada, que es lenta de consultar y rápida de agregar y eliminar. Los hilos no son seguros y eficientes.
- Vector
: La estructura subyacente también es una matriz, por lo que la consulta es rápida y la adición y eliminación son lentas. Pero es seguro para subprocesos e ineficiente.
2.Conjunto
- HashSet
: la estructura subyacente es una tabla hash, y el único elemento de desorden.
- LinkedHashSet
: la estructura subyacente es una lista enlazada y tablas hash, elementos ordenados y únicos.
- TreeSet
: La estructura subyacente es un árbol rojo-negro con elementos ordenados y únicos.
Tres interfaz de mapa
Características: 键值对
Los elementos se almacenan en forma de, la clave no se puede repetir, pero el valor puede ser . Elementos simultáneos 无序
.
Recorrido de la colección de mapas:
1. values()
Recorre todos los valores a través del método map .
2. Almacene las claves de la colección Map keySet()
en la colección Set mediante el método map. , Y luego recorra la colección Set para get()
obtener el valor mediante el método.
3. entrySet()
Obtenga la colección Set que contiene la relación de mapeo Map a través del método, y luego 迭代
llámelo getKey()
y el getValue()
método para obtener la clave y el valor correspondientes.
Código de prueba:
package package04_collection;
import java.util.HashMap;
import java.util.Map;
public class mapTest {
public static void main(String[] args) {
Map<String,String>map = new HashMap<String, String>();
map.put("per01","赵");
map.put("per02","钱");
map.put("per03","孙");
map.put("per04","李");
//1.values方法遍历
for (String value : map.values()) {
System.out.println("value:"+value);
}
//2.keySet方法遍历
for (String s : map.keySet()) {
System.out.println("key:"+s+"\tvalue:"+map.get(s));
}
//3.entrySet方法遍历
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key:"+entry.getKey()+"\tvalue:"+entry.getValue());
}
}
}
Captura de pantalla del efecto: la
注意
clase de implementación TreeMap está ordenada y no permite que las claves sean nulas; Hashtable es seguro para subprocesos y, al mismo tiempo, de baja eficiencia, no permite valores nulos; HashMap no es seguro para subprocesos, y ambas claves y los valores permiten valores nulos.