פורסם 2006 בפברואר 2219 שנים שלום .. רציתי לדעת איך אני מוחק איבר ברשימה מקושרת ב Java עם שמירה על הפרדת רשויות.. כאשר גיליתי שאני צריך למחוק את האיבר באובייקט הפנימי עצמו...איך אני מבפנים מודיע לרשימה ש"אני האובייקט" אמור להמחק ? :\ הרי בתור אובייקט לא אמור להיות לי מושג שאני ברשימה ...תודה מראש לעוזרים.. ואם זה לא הכי מובן אני אתן ציור...
פורסם 2006 בפברואר 2219 שנים איבר לא אמור למחוק את עצמו מהרשימה. (דרך מכוערת לעקוף את זה: לתת לאיבר רפרנס לרשימה)הרשימה אמורה לעשות את זה, ואז הכי טוב ע"י פונקציה מתאימה או איטרטור
פורסם 2006 בפברואר 2219 שנים מחבר כן אני יודע .. ולא למדנו איטרטור אז אני לא רוצה להכניס את זה ... אז זאת הדרך המכוערת היחידה ? אין פחות מכוערת ?אני חשבתי לעשות לו מן תכונה בולאנית שתהיה דגל מחיקה שכל פעם הרשימה תבדוק את מצב הדגל ותמחוק בהתאם.. אבל זה מכוער באותה מידה ...זה נראה ככה...ספר טלפונים V רשימה V אלמנטים V אובייקט (שמחקתי לו את כל המספרי טלפון הדרישה שהכניסה שלו ברשימה תמחק)מקווה שזה יותר מובן :>
פורסם 2006 בפברואר 2219 שנים עוד אופציה היא לעשות את הרשימה סטטית ולעשות פונקציה GETLIST שתחזיר רפרנס לרשימה ואז למחוק (אם אתה עושה את זה אז לך כבר על SINGLETON)
פורסם 2006 בפברואר 2219 שנים תיצור ראש מדומה וזנב מדומה(ללא תוכן רק מצביעים לאיבר הבא) ברשימה, ותעבוד ע"פ ההנחה הזו.כשאתה רוצה למחוק איבר מסויים, תעביר את המידע שבאיבר שאחריו אליו, ואז תמחוק את האיבר שאחריו.אם זה שאחריו הוא ריק, אז אסור לך למחוק אותו(מכיוון שהוא או אחרון ברשימה או שהוא איבר בודד שלא ברשימה).
פורסם 2006 בפברואר 2219 שנים מחבר קודם כל תודה על העזרה.. אני יודע איך צריך למחוק הבעיה היא שאני מגלה שאני צריך למחוק רק בתוך האובייקט עצמו שלו "אין מושג" שהוא ברשימה... והוא צריך להודיע ל List להעיף אותו.... איך אני עושה את זה.. מצורפת תמונההערה: החץ האדום הוא המקום שבו אני מגלה שהאובייקט צריך להמחק....החצים הם חד כיווניים לימן או למטה[attachment deleted by admin]
פורסם 2006 בפברואר 2219 שנים אם האיבר לא יודע שהוא ברשימה אז מאיפה בדיוק הוא מנסה למחוק את עצמו?אם תתייחס לרשימה מתוך האיבר, זה אומר שהאיבר מכיר את הרשימה.אם אתה רוצה להתפרע, אתה יכול להעביר לאיבר (ב- constructor שלו למשל) interface של container שדרכו הוא יכול להודיע שהוא צריך להימחק, אבל זה אומר שכל איבר יכול להיות רק בתוך container אחד.
פורסם 2006 בפברואר 2219 שנים מחבר אם האיבר לא יודע שהוא ברשימה אז מאיפה בדיוק הוא מנסה למחוק את עצמו? אם תתייחס לרשימה מתוך האיבר, זה אומר שהאיבר מכיר את הרשימה. אם אתה רוצה להתפרע, אתה יכול להעביר לאיבר (ב- constructor שלו למשל) interface של container שדרכו הוא יכול להודיע שהוא צריך להימחק, אבל זה אומר שכל איבר יכול להיות רק בתוך container אחד. לא הוא מנסה למחוק את עצמו.. בגדול זה ספר טלפונים. בדרישה רשום שאם אני מוחק לאדם מסויים את כל המספרי טלפון הכניסה של האדם אמורה להמחק.... המתודה למחוק מספרי טלפון היא באובייקט עצמו כמובן (שהוא שומר את הנתונים על כל אדם ואדם ואחד השירותים שלו זה למחוק מס' טלפון) עכשיו אחרי שמחקתי את כל המספרים אני צריך לדווח לרשימה שהאיבר הזה לא נחוץ יותר. איך אני מחזיר לרשימה את הרפרנס שלו למחיקה באלגנטיות בלי לפגוע יותר מדי ב information hiding . זאת השאלה. החצים חד כיווניים הווה אומר כל אובייקט לא מכיר את מי שמצביע עליו. בטוח שיש דרך מתוחכמת לזה אני פשוט לא חכם מספיק
פורסם 2006 בפברואר 2219 שנים אתה יכול להתקמבן עם רפרנס גם ל-previous (חץ לכל כיוון). מבזבז טיפה זיכרון אני מניח, אבל לא נורא.
פורסם 2006 בפברואר 2319 שנים נראה לי שאמור להיות לך מקום מתוך ספר הטלפונים שבו קורא לפונקציה על הרשומה של האדם (שמוחקת את המספר טלפון או מה שזה לא יהיה).אחרי הקריאה הזו, אתה יכול לשאול את הרשומה אם היא ריקה, ואם כן אז למחוק אותה.
פורסם 2006 בפברואר 2319 שנים מחבר נראה לי שאמור להיות לך מקום מתוך ספר הטלפונים שבו קורא לפונקציה על הרשומה של האדם (שמוחקת את המספר טלפון או מה שזה לא יהיה). אחרי הקריאה הזו, אתה יכול לשאול את הרשומה אם היא ריקה, ואם כן אז למחוק אותה. אחלה רעיון! עובד... תודה לכולם
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.