JavaRush /בלוג Java /Random-HE /אוספים. מַפָּה. לִמְחוֹק.
oktava
רָמָה
Санкт-Петербург

אוספים. מַפָּה. לִמְחוֹק.

פורסם בקבוצה
יום טוב. השאלה היא כיצד להסיר אלמנטים מאוסף המפות . אני מנסה לפתור בעיה אחרת ואני לא יכול להתקדם, כי אני לא מבין על סמך איזה עיקרון מחיקה מהאוסף מתרחשת. הרעיון הוא להסיר אלמנטים זהים מאוסף; ההשוואה נעשית לפי ערך. מההרצאות ברמה 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(); } } }
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION