directorio
Conjunto
SET no permitido aumentar la recogida de datos duplicados, configurado para utilizar HashSet.
Los métodos más comunes:
método | explicación |
---|---|
add public boolean (E e); | El aumento de los datos |
public boolean contains (Object o) | datos de la consulta |
remove pública booleano (Object o) | Quitar los datos especificados |
Tamaño public int () | El número total de adquisición de datos |
public void clear () | Borrar datos |
Conjunto de public static () | Creación de un conjunto de recopilación especificando el contenido |
//使用of创建的Set集合,数据不允许修改和重复
Set<Integer> setA = Set.of(1,2,3,4,5,6,7,8);
Set<Integer> setB = new HashSet<>();
Set<Integer> setC = new TreeSet<>();
Set<Integer> setD = new LinkedHashSet<>();
HashSet (almacenamiento de hash)
iguales de anulación (datos de comparación) y hashCode en clase (obtener la codificación de objetos) pueden resolver el problema de los datos por duplicado.
Cuando se utiliza el constructor sin argumentos, HashSet capacidad por defecto es 16, cuando se almacenan los datos en la capacidad actual de expansión 75% automáticamente.
** Ejemplo: ** datos almacenados no se ordena HashSet
Set<String> set = new HashSet<>();
set.add("1 java");
set.add("2 hello");
set.add("3 world");
set.add("4 ");
set.add("5");
System.out.println(set);
resultados:
[1 java, 5, 3 world, 4 , 2 hello]
TreeSet (almacenamiento ordenado)
clasificar de forma automática (de menor a mayor).
construcción:
método | explicación |
---|---|
TreeSet pública () | interfaz Comparable con el orden predeterminado |
TreeSet pública (Comparador <? Super E> comparador) | Se puede especificar para ordenar el uso de una interfaz Comparador |
TreeSet Ejemplo de pedido:
Set<String> set = new TreeSet<>();
set.add("1 java");
set.add("4 ");
set.add("3 world");
set.add("2 hello");
set.add("5");
System.out.println(set);
resultados:
[1 java, 2 hello, 3 world, 4 , 5]
Cuando se utiliza TreeSet objetos de datos ordenados, puesto que los datos se clasifican de acuerdo con la interfaz Comparable se determina para repetir el mismo, mientras que sólo determina entonces si otros datos iguales fase, es problemático en muchos casos los datos, como en el caso de 50 datos.
public int compareTo(Ball ball) {
if(this.price > ball.price){
return 1;
}else if(this.price < ball.price){
return -1;
}else {
return this.brand.compareTo(ball.brand); //判断生产时期是否相等
}
}