HashSet és HashMap közötti különbség

Ez a cikk a HashSet és a HashMap osztályok közötti különbségeket tárgyalja.

HashSet vs HashMap

Különbségek:

HashSet HashMap
A HashSet osztály a Set interfészt valósítja meg A HashMap osztály a Map interfészt valósítja meg
A HashSet osztályban objektumokat (elemeket vagy értékeket) tárolunk e.Pl. ha van egy string elemekből álló HashSet-ünk, akkor az egy HashSet elemekből álló halmazt ábrázolhat: { A HashMap kulcs & értékpárok tárolására szolgál. Röviden: a kulcs & érték leképezését tartja fenn (A HashMap osztály nagyjából a Hashtable-nek felel meg, azzal a különbséggel, hogy nem szinkronizált és nullákat is megenged). Így lehet ábrázolni a HashMap elemeket, ha egész számú kulcsot és String típusú értéket tartalmaz: pl. {1->”Hello”, 2->”Hi”, 3->”Bye”, 4->”Run”}
A HashSet nem engedi a duplikált elemeket, ami azt jelenti, hogy nem tárolhatunk duplikált értékeket a HashSet-ben. A HashMap nem engedi a duplikált kulcsokat, viszont lehetővé teszi a duplikált értékeket.
A HashSet egyetlen null értéket engedélyez. A HashMap egyetlen null kulcsot és tetszőleges számú null értéket engedélyez.

Hasonlóságok:
1) Mind a HashMap, mind a HashSet nem szinkronizált, ami azt jelenti, hogy nem alkalmasak szálbiztos műveletekre unitl kivéve, ha explicit módon szinkronizálnak. Így szinkronizálhatjuk őket explicit módon:
HashSet:

Set s = Collections.synchronizedSet(new HashSet(...));

HashMap:

 Map m = Collections.synchronizedMap(new HashMap(...));

2) Mindkét osztály nem garantálja, hogy az elemeik sorrendje idővel állandó marad.

3) Ha megnézzük a HashSet forráskódját, akkor láthatjuk, hogy egy HashMap áll mögötte. Tehát alapvetően belsőleg egy HashMap-ot használ minden műveletéhez.

4) Mindkettő állandó időbeli teljesítményt nyújt az olyan alapvető műveletekhez, mint az elem hozzáadása, eltávolítása stb.

HashSet example

import java.util.HashSet;class HashSetDemo{ public static void main(String args) { // Create a HashSet HashSet<String> hset = new HashSet<String>(); //add elements to HashSet hset.add("AA"); hset.add("BB"); hset.add("CC"); hset.add("DD"); // Displaying HashSet elements System.out.println("HashSet contains: "); for(String temp : hset){ System.out.println(temp); } }}

Output:

HashSet contains: AABBCCDD

HashMap example

import java.util.HashMap;class HashMapDemo{ public static void main(String args) { // Create a HashMap HashMap<Integer, String> hmap = new HashMap<Integer, String>(); //add elements to HashMap hmap.put(1, "AA"); hmap.put(2, "BB"); hmap.put(3, "CC"); hmap.put(4, "DD"); // Displaying HashMap elements System.out.println("HashMap contains: "+hmap); }}

Output:

HashMap contains: {1=AA, 2=BB, 3=CC, 4=DD}

Leave a Reply