אוספים ומשתנה גנרי
![](https://static.wixstatic.com/media/ffe63aceb62fb0a97313a33ae0c47144.jpg/v1/fill/w_980,h_1069,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/ffe63aceb62fb0a97313a33ae0c47144.jpg)
טיפוס גנרי מסומן
<e> element
איזה שהו אלמנט, גנרי הכוונה שאינו מוגבל לסטרינג או מספר שלם.
כך ניתן להפעיל מתודה ולשלוח אליה פרמטרים שונים בכל פעם, למשל toString היא פונקציה שניתן לפעיל על כל אובייקט שיורש מ- Object.
ישנם שלושה אינטרפייסים בג׳אווה אשר מייצגים אוספים (מערך רגיל אינו אוסף רגיל, כי אינו יורש מקולקשיין).
1.
list
מימושים בשני מחלקות ->
linked list -> יותר מניפולטיבי להסרה והוספה
array list -> יותר פופולארי ומהיר
כמו מערך רק גמיש (דינאמי ולא סטטי) להוספה ואפשרי להפעיל מתודות כמו סורט (sort) לעשות לפי סדר.
2.
set
hashSet -> אם לא משמעותי שיהיה סדר נלך על זה
tree map -> תמיד מסודר לפי סדר כמו sort
כל אחד מפתח יחודי, אין ערך משוכפל, אינדקס כמו מערך אבל מתעלם מהוספת ערכים שכבר קיימים.
3.
map
hash map -> יותר פופולארי , הכי פופולארי בשפה
TreeMap -> מפתחות מסודרות
יכול להיות ערכים אותו דבר אבל מפתח שונה, אין מפתחות אותו שם.
כמו דיקשיונרי בסוויפט או בשם המוכר יותר: מערך אססוייטיוי,
דוגמא:
Map <String,Integer>cars; studsGrades=new HashMap(); studsGrades.put("toyota", 40000);
פונקציה שימושית:
keyset() מעבר על כל המפתחות
ישנה אפשרות אחרת לעבור על כל הערכים והמפתחות, על ידי שימוש ב- entrySet().
דוגמה:
for(Map.Entry<String, Integer> entry : myMap.entrySet()){//foreach over entries System.out.println(entry.getKey()+" has value of -> "+entry.getValue()); }
ישנם עוד מחלקות הממשות אוספים, כגון: HashTable, LinkedHashMap
אך לא התייחסנו אליהם כאן.