¿Aprender Java requiere aprender STL?
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
{ 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>
p>
la clase P implementa comparables<P>
{
int x,y;
int compareTo(P e) p>
{
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