יום טוב. השאלה היא כיצד להסיר אלמנטים מאוסף
המפות . אני מנסה לפתור בעיה אחרת ואני לא יכול להתקדם, כי אני לא מבין על סמך איזה עיקרון מחיקה מהאוסף מתרחשת. הרעיון הוא להסיר אלמנטים זהים מאוסף; ההשוואה נעשית לפי ערך. מההרצאות ברמה 8 הבנתי ש"איטרטור" הוא משהו כמו קישור לאוסף שלנו. לכן, יצרתי 2 קישורים כאלה, ובאמצעות השוואת האלמנטים באוסף, החלטתי למחוק את האלמנטים אליהם מתייחס הקישור (האובייקט) iterator2. תסביר למה אני עושה את זה לא נכון. אני באמת רוצה להבין איפה אני טועה. תודה לכל מי שיגיב. אפשרות נוספת ליישום הסרה מאוסף
for (Iterator
> iterator1 = map.entrySet().iterator(); iterator1.hasNext();){ HashMap.Entry
pair1 = iterator1.next(); for (Iterator
> iterator2 = map.entrySet().iterator(); iterator2.hasNext();) { HashMap.Entry
pair2 = iterator2.next(); if(pair1.getValue().equals(pair2.getValue())){ map.remove(pair2.getKey()); } } }
Iterator
> iterator1 = map.entrySet().iterator(); while(iterator1.hasNext()){ Map.Entry
pair1 = iterator1.next(); Iterator
> iterator2 = map.entrySet().iterator(); while(iterator2.hasNext()){ Map.Entry
pair2 = iterator2.next(); if (pair1.getValue().equals(pair2.getValue())){ iterator2.remove(); } } }
GO TO FULL VERSION