Junior
HashMap жана Set деген эмне, жана кайсы учурларда колдонуу жакшы?
sobes.tech AI
AIден жооп
HashMap - бул ачкыч-маани жуптуулары сакталган топтом. Ачкычтар уникалдуу, ал эми маанилер кайталанышы мүмкүн. Ал тез жетүү үчүн хештөө технологиясын колдонуп, орто эсеп менен O(1) убакытта иштейт.
Set - бул уникалдуу элементтерди сактаган топтом. Сактоо тартибин кепилдебейт, эгер конкреттүү реализация колдонулбаса (мисалы, LinkedHashSet). Киргизүү, өчүрүү жана элементтин бар-жогун текшерүү орто эсеп менен O(1). Ар кандай реализациялар бар, мисалы:
HashSet: элементтердин тартибин кепилдебейт.LinkedHashSet: элементтердин кошулуу тартибин сактайт.TreeSet: элементтерди сорттолгон тартипте сактайт.
Кайда колдонуу керек:
- HashMap:
- Эффективдүү издөө, кошуу же өчүрүү керек болсо, негизги колдонуу.
- Байланыштуу маалыматтарды сактоо (мисалы, сөздүк).
- Ачкыч боюнча маанинин бар-жогун тез текшерүү.
- Set:
- Тек гана уникалдуу элементтерди сактоо керек болсо.
- Коллекцияда элементтин бар-жогун эффективдүү текшерүү.
- Топтомдору менен операцияларды жүргүзүү (бириктирүү, кесилиш).
HashMap колдонуу мисалы:
// HashMap түзүү
HashMap<String, Integer> жаштар = new HashMap<>();
// Элементтерди кошуу
жаштар.put("Alice", 30);
жаштар.put("Bob", 25);
жаштар.put("Charlie", 35);
// Ачкыч боюнча маанини алуу
int Бобдунжашы = жаштар.get("Bob"); // Бобдунжашы = 25
// Ачкычтын бар-жогун текшерүү
boolean барбыAlice = жаштар.containsKey("Alice"); // барбыAlice = чын
HashSet колдонуу мисалы:
// HashSet түзүү
HashSet<String> аттар = new HashSet<>();
// Элементтерди кошуу
аттар.add("Alice");
аттар.add("Bob");
аттар.add("Charlie");
аттар.add("Alice"); // кошулбайт, себеби Alice алгачтан бар
// Элементтин бар-жогун текшерүү
boolean барбыBob = аттар.contains("Bob"); // барбыBob = чын
// Элементтер боюнча өтүү
for (String ат : аттар) {
System.out.println(ат);
}