Сбор: можно хранить только объекты, типы объектов могут быть разными, а длина может быть переменной.
Обычно используются интерфейсы и классы:
1. Список интерфейса (упорядочен и повторяется): класс Arraylist, LinkedList, Vector Class
2. Установите интерфейс (безупречный, не может быть повторен): класс Hashset, класс Treesset
3. Интерфейс карты (пары клавиш значения, только клавиш, значение не уникальное): класс Hashmap, хэш-класс, класс TreeMap
Петля траверса классов сбора
1. Обычный для цикла: например (int i = 0; i <arr.size (); i ++) {…}
2. Foreach (усиление для цикла): например, для (объект I: arr) {…}
3. iterator (итератор): например, итератор IT = arr.iterator (); while (it.hasnext ()) {object o = it.next (); …}
ПРИМЕЧАНИЕ. Массивы или коллекции не могут быть изменены во время обхода, в то время как для петли могут быть изменены во время обхода.
Разница между ArrayList, LinkedList и Vector
ArrayList: высокая эффективность, в основном используется для запроса
LinkedList: в основном используется для вставки и удаления
Вектор: безопасная потока, в основном используется для запроса
Код:
Импорт java.util.arraylist; import java.util.iterator; import java.util.linkedlist; import java.util.list; import java.util.vector; public class listest {public static void main (string [] args) {list arraylist = new ArrayList (); likenlist = new LinkedList = vectedList = vectredList = vectorList = ovetorList = vectorList =;););););); Vector (); ArrayList.Add ("1"); // Тип символа arraylist.add ("1"); // повторить элементы arraylist.add ("2"); arraylist.add (1); // Тип номера LinkedList.Add ("1"); LinkedList.Add ("1"); LinkedList.Add ("2"); LinkedList.Add (1); Vector.Add ("1"); Vector.Add ("1"); Vector.Add ("2"); Vector.Add (1); System.out.println (obj);} for (int i = 0; i <linkedList.size (); i ++) {// Обычный для цикла System.out.println (arraylist.get (i));} iterator it = vector.iterator (); // итератор while (it.hasnext ()) {object j = it.next (); System.out.println (j);}}}Разница между хэшсом и деревьями
Hashset: Hashset реализован хэш -таблицей. Данные в хэшсете неупопорядочен. Вы можете положить NULL, но вы можете положить только один нуль.
Treesset: Treesset реализуется двумя разногласия. Данные в деревьях автоматически отсортируются, а нулевые значения не разрешаются размещать.
Код:
открытый класс ountest {public static void main (string [] args) {set hashset = new hashset (); set reeset = new Treeset (); hashset.add ("1"); // тип символа hashset.add ("1"); // повторный элемент hashset.add ("2"); hashset.add (1); // Тип номера reeset.add ("1"); reeset.add ("1"); reeset.add ("2"); //treeset.add(1); // Ошибка отчета, TreaSet не может добавить различные типы данных для (Object I: hashset) {// foreach Loop System.out.println (i);} iterator it = treeset.iterator (); // итератор while (it.hasnext ()) {object j = it.next (); System.out.println (j);}}}ПРИМЕЧАНИЕ. Интерфейс SET не имеет метода GET, поэтому вы не можете использовать нормальный цикл для прохождения.
Разница между HashMap, Hashtable и TreeMap
Hashmap: Hashmap позволяет один нулевой ключ и несколько нулевых значений
Hashtable: ключ и значение хэштата не разрешаются быть нулевыми
TREEMAP: он может сортировать записи, которые сохраняют в соответствии с ключом. По умолчанию он сортируется в порядке возрастания значений ключей. Вы также можете указать отсортированный компаратор. Когда он пересматривается с итератором, полученные записи отсортируются.
Код:
Import java.util.hashmap; import java.util.hashtable; import java.util.iterator; import java.util.map; import java.util.set; import java.util.treemap; public class maptest {public static void main (string [] args) {map hashmap = newshtable hashmap ();); Hashtable (); map treemap = new treemap (); hashmap.put (1, "1"); // значение типа символа hashmap.put (2, "1"); // такое же значение hashmap.put (3, "2"); hashmap.put (4, 1); // значение числового типа hashmap.put ("5", 1); // hashtable.put (1, "1") типа символа (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"); treemap.put (5, "2"); treempap.put (4, 1); 1); treeMap.put (1, "1"); treeMap.put (2, "1"); treeMap.put (5, "2"); treeMap.put (4, 1); // treeMap.put ("5", 1); // сообщается об ошибке, TreeMap не может добавить различные типы ключей // трансипипионный ключ HashMap для (объект ключ: hashmap.keyset ()) {system.out.println (key);} // hashtable transip hashtable для (object value: hashtable.values () {System.out.println (value); hashmap.keyset (); for (iterator iter = set.iterator (); iter.hasnext ();) {object key = iter.next (); object value = hashmap.get (key); system.out.println (ключ+"/t"+value);} // Итеративно траверсидные пары клавиш значения, обратный порядок! Итераторная таблица = hashtable.entryset (). Iterator (); while (table.hasnext ()) {map.entry entry = (map.entry) table.next (); Object Key = entry.getKey (); // Получить значение объекта ключа = entry.getValue (); // Получить Value System.out.println (key+"/t"+value); } // Итеративно Траверс TREEMAP PALE PARE ITERATOR TMP = TREEMAP.ENTRYSET (). ITERATOR (); while (tmp.hasnext ()) {map.entry entry = (map.entry) tmp.next (); Object Key = entry.getKey (); // Получить значение объекта ключа = entry.getValue (); // Получить Value System.out.println (key+"/t"+value); }}}Занятия о безопасности потока включают: Vecto, Hashtabl, StringBuffe
Безопасность без тренажеров: Arraylist, LinkedList, Hashmap, Hashset, TreeMap, Treesset, StringBulider
Примечание. Concurrenthashmap можно использовать вместо хэшмапа для безопасности резьбы и более эффективно, чем хэштата.
Собственный механизм Java не может полностью гарантировать безопасность нити. Вам нужно вручную кодировать и контролировать это самостоятельно.