Junior
Java-ში List და Set ინტერფეისების განსხვავება რა არის?
sobes.tech AI
პასუხი AI-სგან
Javaда List һәм Set интерфейслары арасындагы төп аерма түбәндәгечә:
-
Элементлар тәртибе:
Listэлементларны өстәү тәртибен саклый. Элементларның индекслары бар, 0-дан башлана.Setэлементлар тәртибен гарантияләмәй. Кайбер реализацияләр (мәсәлән,LinkedHashSet,TreeSet) билгеле бер тәртипкә ия булырга мөмкин, ләкинSetинтерфейсы моны таләп итми.
-
Күп тапкырлыклар:
Listкүп тапкырлы элементларны сакларга рөхсәт итә.Setкүп тапкырлы элементларны сакларга тыя. Кушу вакытында күп тапкырлы элемент өстәлсә, операция йә игнорлана, йәfalseкайтара (реализациягә һәм ысулга бәйле).
-
Үзгәрүчәнлек һәм тизлек:
Listуртасында өстәү һәм бетерү операцияләре әкренрәк булырга мөмкин (аеручаArrayListөчен),Setбелән чагыштырганда.Setтә элемент барлыгын тикшерү (contains) гадәттә тизрәк (HashSetөчен уртача O(1)),Listбелән чагыштырганда (уртача O(n)).- Индекс буенча операцияләр (
get,set) бары тикListта гына мөмкин.
-
Реализацияләр:
- Төп
Listреализацияләре:ArrayList,LinkedList,Vector. - Төп
Setреализацияләре:HashSet,LinkedHashSet,TreeSet.
- Төп
Менә кайбер мисаллар, алар аерма күрсәтә:
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class CollectionDifferences {
public static void main(String[] args) {
// List күп тапкырлы элементларны рөхсәт итә һәм тәртипне саклый
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple"); // Күп тапкырлы элемент өстәү
System.out.println("List: " + list); // Нәтиҗә: [Apple, Banana, Apple]
System.out.println("Индексы 1дәге элемент: " + list.get(1)); // Индекс буенча керү
// Set күп тапкырлы элементларны рөхсәт итми һәм тәртип гарантияләмәй (HashSet өчен)
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple"); // Күп тапкырлы элемент өстәү - игнорлана
System.out.println("Set: " + set); // Нәтиҗә: [Apple, Banana] яки [Banana, Apple]
// set.get(1); // Компиляция хатасы - индекс белән керү юк
}
}
Чагыштыру таблицасы:
| Үзенчәлек | List | Set |
|---|---|---|
| Тәртип | Гарантланган (өстәү тәртибе) | Гарантланмаган (HashSet өчен), тәртипле (TreeSet) |
| Күп тапкырлыклар | рөхсәт ителә | тыела |
| Индекс буенча керү | мөмкин (get(int index)) |
мөмкин түгел |
| contains() тизлеге | O(n) уртача (ArrayList өчен) | O(1) уртача (HashSet өчен) |
| Төп реализацияләр | ArrayList, LinkedList, Vector | HashSet, LinkedHashSet, TreeSet |