Red de conocimiento informático - Conocimiento informático - ¿Aprender Java requiere aprender STL?

¿Aprender Java requiere aprender STL?

Todos los STL en Java heredan de la clase Colección. Por lo tanto, todas las subclases pueden usar los métodos de la clase Colección:

Los métodos comúnmente utilizados en ACM son:

boolean add (Object obj)

boolean remove ( Oblect obj)

booleano contiene (Objeto obj)

void clear()

boolean isEmpty()

Iterador iterador()

int size()

Además, la clase Colecciones también contiene un método de clasificación que puede ordenar el contenedor Vector, pero los elementos en el Vector deben implementar la interfaz Comparable o un comparador personalizado. , consulte Vector para obtener más detalles.

Tenga en cuenta que Colecciones y Colecciones no son lo mismo. La primera es una interfaz y la segunda es una clase.

Set

Set es una clase abstracta en Java, por lo que no podemos usar Set directamente para definir instancias, sino que debemos definir instancias a través de subclases. Las subclases comunes incluyen HashSet, TreeSet, etc.

Además, todos los contenedores en Java solo pueden ser instancias de clases, no instancias de tipos de datos básicos. Por lo tanto, no podemos definir Set con int, sino que debemos cambiar int a la clase Integer.

HashSet

Los elementos en HashSet necesitan implementar el método hashCode() para poder comparar los elementos

clase P

{

int x, y;

int hashCode()

{

return x*100000 + y;

}

}

Set

st = new HashSet

();

Recorrer elementos del conjunto

1 iteración

Iterador

it = st.iterator();

while(it.hasNext())P e=it.next();

2 Enumeración

for(P e : st)System.out.println(e.x+" "+e.y);

TreeSet

TreeSet y The La diferencia de HashSet es que los elementos en TreeSet implementan la interfaz Comparable

Vale la pena señalar que TreeSet es muy similar a la colección en C++, porque el recorrido se realizará automáticamente en el orden de la definición Comparable

p>

la clase P implementa comparables<P>

{

int x,y;

int compareTo(P e)

{

return x

}

}

En C++ , set es una colección con las mismas propiedades que set.

p>set en C++ tiene métodos Upper_bound(), lower_bound() y multiset, pero desafortunadamente no lo he visto en Java

Map contiene HashMap y TreeMap como Set, atravesará automáticamente en el orden especificado de comparación

booleano contieneClave(Clave de objeto)

booleano contieneValor(Valor de objeto)

valor obtener(Clave de objeto)

valor puesto( Clave de objeto, valor de objeto)

Uso general de Map

1 Declarar un mapa:

Map map = new HashMap();

2. Coloque el valor en el mapa. Nota: el mapa se almacena en forma de valor clave. Por ejemplo:

map.put("sa", "dd");

3. Obtenga el valor del mapa:

String str = map. get ("sa").toString,

El resultado es: str = "dd'

4. Recorre el mapa y obtén las claves y valores:

Mapa m= nuevo HashMap();

for(Objeto obj : map.keySet()){

Valor del objeto = map.get(obj );

}

El programa para recorrer el mapa se encontró en línea

Import java.util

import java.util.HashMap

importar java.util.Iterator;

importar java.util.Map;

clase pública HashMapTest {

mapa estático privado =nuevo HashMap< Integer,String>()

;