концепция
Во -первых, давайте посмотрим на коллекцию сет.
(01) SET - это интерфейс, унаследованный от коллекции. Это коллекция, которая не позволяет дублировать элементы.
(02) AbstractSet - это абстрактный класс, который наследует от AbstractCollection. AbstractCollection реализует большинство функций в наборе, обеспечивая удобство для классов реализации.
(03) Hastset и Treesset - два класса реализации набора.
Hashset полагается на HashMap, который фактически реализуется через HashMap. Элементы в хэшсе не выходили из строя.
Treesset полагается на TreeMap, который фактически реализуется через TreeMap. Элементы в деревьях заказаны.
например:
Давайте посмотрим на использование сборов, пройдя нарушения:
пакет com.sort; импортировать java.util.hashset; импортировать java.util.iterator; импортировать java.util.set; /*** Коллекция, которая не содержит дублирующих элементов. Более конкретно, SET не содержит элементов, которые удовлетворяют e1.equals (e2), E1 и E2, * @author владелец * * */ public class settest2 {public static void main (string [] args) {set <string> set = new hashset <string> (); set.add ("a"); set.add ("b"); set.add ("c"); set.add ("D"); set.add ("e"); set.add ("e"); set.add ("e"); // Двойные данные не могут быть помещены в/*** Метод обхода 1, итеративное обход*/for (iterator <string> iterator = set.iterator (); iterator.hasnext ();) {System.out.print (iterator.next ()+""); } System.out.println (); System.out.println ("*************************"); / *** Для улучшенного петли Traversal*/ for (String value: set) {System.out.print (value+""); }}} Примечание. Тип строки размещен в коллекции SET. Если мы поместим экземпляр класса, который мы определяем, например, экземпляр класса человека, мы должны сами повторно заправлять и равные методы и переписать их с нашими собственными ключевыми полями, потому что при использовании хешсат, метод HashCode () будет вызван для определения того, является ли значение кода хэша, которое хранится в коллекции, соответствует значению кода HASH добавленного объекта; Если это противоречиво, добавьте его напрямую; Если это последовательно, сравните метод равных. Если метод equals возвращает true, это означает, что объект был добавлен, и не будет добавлен новый объект, в противном случае он будет добавлен.