Sobes.tech
Junior

Set дар Java чист?

sobes.tech AI

Ҷавоб аз AI

Set дар Java — ин коллексияи уникӣ аз унсурҳо мебошад, ки тартиби нигоҳдориро кафолат намекунад.

Хусусиятҳои асосӣ:

  • Уникӣ: Надорад дубляжҳо. Агар кӯшиш кунед, ки унсури мавҷударо илова кунед, амалиёт нодида гирифта мешавад (ба вобаста аз татбиқ).
  • Норасогии индекс: Унсурҳо ба воситаи индекс дастрас нестанд.
  • Интерфейс: Бастаи Java Collections-ро ташкил медиҳад ва интерфейси Collection-ро васеъ мекунад.

Татбиқҳои бештар истифодашаванда:

  • HashSet: Татбиқи зудтарин, асос ёфта дар таблицаи хеш. Рақамро дар назар надорад.
  • LinkedHashSet: Рақамро дар назар дорад, бо истифода аз рӯйхати пайвастшуда дар канори таблицаи хеш.
  • TreeSet: Унсурҳоро дар тартиби сортшуда нигоҳ медорад (табиӣ ё бо истифода аз муқоисакунандаи муайяншуда), асос ёфта дар дарахти сурх-каҳ.

Масалан барои истифодаи HashSet:

// Эҷоди HashSet
Set<String> номҳоиУникӣ = new HashSet<>();

// Илова кардани унсурҳо
номҳоиУникӣ.add("Alice");
номҳоиУникӣ.add("Bob");
номҳоиУникӣ.add("Alice"); // Ин унсур нодида гирифта мешавад
номҳоиУникӣ.add("Charlie");

// Санҷидани мавҷудияти унсур
boolean дорадBobe = номҳоиУникӣ.contains("Bob"); // true

// Итерировать по унсурҳо (тартиб кафолат дода намешавад)
for (String ном : номҳоиУникӣ) {
    System.out.println(ном);
}

// Андозаи Set
int андоза = номҳоиУникӣ.size(); // 3