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