Coleção: Somente objetos podem ser armazenados, os tipos de objetos podem ser diferentes e o comprimento pode ser variável.
Interfaces e classes comumente usadas:
1. Interface da lista (ordenada e repetível): Classe Arraylist, LinkedList, classe vetorial
2. Interface definida (não ordenada, não pode ser repetida): Classe Hashset, Treeset Class
3. Interface do mapa (pares de valor-chave, somente chave, valor não exclusivo): classe hashmap, classe de hashtable, classe Treemap
Travessal de loop de aulas de coleção
1. Ordinário para loop: como para (int i = 0; i <arr.size (); i ++) {…}
2. Foreach (aprimorado para loop): como para (objeto i: arr) {…}
3. Iterador (iterador): por exemplo, iterador it = arr.iterator (); while (it.hasnext ()) {objeto o = it.next (); …}
NOTA: Matrizes ou coleções não podem ser modificadas durante o Traversal, enquanto os loops podem ser modificados durante o Traversal.
A diferença entre ArrayList, LinkedList e Vector
Arraylist: alta eficiência, usada principalmente para consultar
LinkedList: principalmente usado para inserção e exclusão
Vector: seguro de linha, usado principalmente para consultar
Código:
importar java.util.arraylist; importar java.util.iterator; importar java.util.LinkedList; importar java.util.list; importar java.util.vector; public class listTest {public static void main (string [] args) {list ArrayList = ArrayList (); Vector (); ArrayList.add ("1"); // tipo de caractere ArrayList.add ("1"); // Repita o elemento ArrayList.add ("2"); ArrayList.add (1); // tipo de número LinkedList.add ("1"); LinkedList.add ("1"); LinkedList.add ("2"); LinkedList.add (1); vetor.add ("1"); vector.add ("1"); vector.add ("2"); Vector.ad.ad.add ("1"); System.out.println (obj);} para (int i = 0; i <LinkedList.size (); i ++) {// Ordinary for Loop System.out.println (ArrayList.get (i));} itator it = Vector.iterator (); // iterator while (it.hasnext ()) {objeto j = it.next (); system.out.println (j);}}}A diferença entre hashset e árvores
HASHSET: O hashset é implementado por uma tabela de hash. Os dados no hashset não são ordenados. Você pode colocar nulo, mas só pode colocar um nulo.
TreeSet: Treeset é implementado por uma árvore de duas diferenças. Os dados no TreeSet são classificados automaticamente e os valores nulos não podem ser colocados.
Código:
public class Settest {public static void main (string [] args) {set hashset = new hashset (); set treeset = new TreeSet (); hashset.add ("1"); // tipo de caractere hashset.add ("1"); // repetir elemento hashset.add ("2"); hashset.add (1); // tipo de número TreeSet.add ("1"); TreeSet.add ("1"); TreeSet.add ("2"); //treeset.add(1); // Erro de relatório, o TreeSet não pode adicionar diferentes tipos de dados para (objeto i: hashset) {// foreach loop System.out.println (i);} iterator it = TreeSet.iterator (); // iterator while (it.hasnext ()) {objeto j = it.next (); system.out.println (j);}}}Nota: A interface definida não possui um método GET, portanto, você não pode usar um loop normal para atravessar.
A diferença entre hashmap, hashtable e theemap
Hashmap: Hashmap permite uma chave nula e vários valores nulos
Hashtable: a chave e o valor da hashtable não podem ser nulos
Treemap: Pode classificar os registros que economiza de acordo com a chave. Por padrão, ele é classificado em ordem crescente de valores -chave. Você também pode especificar o comparador classificado. Quando é atravessado com o iterador, os registros obtidos são classificados.
Código:
importar java.util.hashmap; importar java.util.hashtable; importar java.util.iterator; importar java.util.map; importar java.util.Set; importar java.util.treemap; public class Haspest {public houst static kroid main (string [] args) {mapspmhmhm; Hashtable (); mapa Treemap = new Treemap (); hashmap.put (1, "1"); // Valor do tipo de caractere hashmap.put (2, "1"); // o mesmo valor hashmap.put (3, "2"); hashmap.put (4, 1); // o valor do tipo numérico hashmap.put ("5", 1); // a chave do tipo de caractere hashtable.put (1, "1"); hashtable.put (2, "1"); hashtable.put (3, "2"); hashtable.put (4, 1); hashtable.put ("5", 1); TreeMap.put (1, "1"); Treemap.put (2, "1"); 1); Treemap.put (1, "1"); Treemap.put (2, "1"); Treemap.put (5, "2"); Treemap.put (4, 1); // Treemap.put ("5", 1); // Um erro é relatado, o TREEMAP não pode adicionar diferentes tipos de teclas // Chave de hash de transipação para (chave do objeto: hashmap.keyset ()) {System.out.println (key);} // Value de hashtable para (valor do objeto: hashtable.Values ()) {System.out.Printlnnnn (value); hashmap.keyset (); para (iterator iter = set.iterator (); iter.hasNext ();) {objeto key = iter.next (); value objeto = hashmap.get (key); system.out.println (key+"/t"+valor);} // travessia iterativamente os pares de key-value! Tabela de iterador = hashtable.entrySet (). Iterator (); while (tabela.hasnext ()) {map.entry Entry = (map.entry) tabela.Next (); Chave de objeto = entrada.getKey (); // obtenha o valor do objeto de chave = Entry.getValue (); // Get the value System.out.println (key+"/t"+valor); } // atravessar iterativamente o iterador de valor-chave Treemap tmp = Treemap.entrySet (). Iterator (); while (tmp.hasNext ()) {map.entry Entry = (map.entry) tmp.next (); Chave de objeto = entrada.getKey (); // obtenha o valor do objeto de chave = Entry.getValue (); // Get the value System.out.println (key+"/t"+valor); }}}As aulas sobre segurança de threads incluem: vecto, hashtabl, stringbuffe
Segurança não-thread: Arraylist, LinkedList, Hashmap, Hashset, TreeMap, Treeset, Stringbulider
NOTA: O concorrente pode ser usado em vez de hashmap para segurança de threads e é mais eficiente do que a hashtable.
O próprio mecanismo de Java não pode garantir totalmente a segurança do thread. Você precisa codificar manualmente e controlá -lo sozinho.