Sobes.tech
Junior — Middle

Тафовут дар иҷрои коллексияи Set бо коллексияи ArrayList дар Java чист?

sobes.tech AI

Ҷавоб аз AI

Асосӣ фарқият байни ҷамъиятҳои Set ва ArrayList дар Java дар рафтор ва татбиқашон аст:

  • Set — ин ҷамъиятест, ки дубораҳои элементҳоро иҷозат намедиҳад. Рақами элементҳо кафолат дода намешавад (масалан, дар HashSet), ҳарчанд татбиқҳои бо тартиб (TreeSet, LinkedHashSet) мавҷуданд.
  • ArrayList — рӯйхати мураттабест, ки дубораҳоро иҷозат медиҳад ва тартиби илова кардани элементҳоро нигоҳ медорад.

Аз нуқтаи назари татбиқ:

  • ArrayList асос ёфтааст ба массив, ки дар вақти илова кардан ба он васеъ мешавад. Дастрасии зуд ба индекс.
  • HashSet одатан дар асоси HashMap татбиқ мешавад, ки дар он элементҳо ҳамчун калидҳо истифода мешаванд. Ин таъмин мекунад ҷустуҷӯи зуд ва санҷиши ягонагӣ.

Масалан:

Set<String> set = new HashSet<>();
set.add("apple");
set.add("apple"); // дар дафъаи дуввум илова намешавад

List<String> list = new ArrayList<>();
list.add("apple");
list.add("apple"); // ҳар ду элемент илова мешаванд