שאלה ב JAVA Collections למעשה שאלה שמכסה את רוב החומר המעשי

gaglan

New member
שאלה ב JAVA Collections למעשה שאלה שמכסה את רוב החומר המעשי

יש רשימה כלשהי של אובייקטים מסוג pack1
public class pack1 {
int x1;
int x2;
String someData1;
String someData2;
}

וצריך להעתיק אותה למבנה יעיל הן מבחינת הזיכרון והן מבחינת החיפוש
import java.util.Collection;
public class pack1Manager {
// declare some structure use ArryList / hashmap / else
// to make copy of Collection<pack1>
//that use little of memory resources
//and the search function (search(int x1, int x2)) work fast

void load(Collection<pack1> source) {
// make copy of Collection<pack1> to effective structure
}

pack1 search(int x1, int x2) {
pack1 o=null;
// find o
return o;
}
}

ועכשיו לשאלה איזה סוג של מבנה נקים בשביל להעתיק ולשמור את הרשימה מסוג pack1
כך שחיפוש איבר pack1 search(int x1, int x2) יהיה מהיר ועדיף לא לבזבז פי 2 זיכרון
* שתי הפונקציות הרלוונטיות הן
void load(Collection<pack1> source) { }
pack1 search(int x1, int x2) {}

אני יודע שזה ההיפך משאלה אמריקאית
תודה רבה לכל מי שמתאמץ להבין איך לממש שימוש יעיל ב COLLECTIONS ולכולם
תודה רבה
 

BravoMan

Active member
שאלה יותר טובה:

לאיזה מבנה אתה יכול להעתיק שכן יבזבז פי 2 זיכרון?
&nbsp
זו לא שאלה מטרילה:
כל Collection ב-Java מאחסן reference לאובייקטים.
&nbsp
כל אחד מהם ייתן overhead מסוים של זיכרון שאפשר להתייחס אליו כזניח, אבל כדי לבזבז באמת n * 2 זיכרון צריך ממש לשכפל אובייקטים.
&nbsp
אז, איך החלטת שזו בכלל אפשרות?
אחרי שנבין את זה, אולי נבין יותר טוב היכן אתה נתקע בשאלה, ונוכל לעזור לך.
 
למעלה