הבדל מפתח - אוסף כללי לעומת לא גנרי ב-C
אוסף גנרי הוא מחלקה המספקת בטיחות סוג ללא צורך לנבוע מסוג איסוף בסיס וליישם חברים ספציפיים לסוג. אוסף לא גנרי הוא מחלקה מיוחדת לאחסון ואחזור נתונים המספקת תמיכה בערימות, תורים, רשימות ו-hashtables. ההבדל העיקרי בין אוסף גנרי לאוסף לא גנרי ב-C הוא שאוסף גנרי מוקלד בצורה חזקה בעוד שאוסף לא גנרי אינו מוקלד חזק.
מהו אוסף גנרי ב-C?
האוספים הלא-גנריים כגון ArrayList, Queue, Stack וכו'.יכול לאחסן אלמנטים מסוגי נתונים שונים. בעת השגת הפריטים, המתכנת צריך להקליד להטיל אותם לסוג הנתונים הנכון. אחרת, זה יכול לגרום לחריגה בזמן ריצה. ניתן להשתמש במחלקות האיסוף הגנריות כדי להתגבר על בעיה זו. אוספים גנריים מאחסנים אלמנטים פנימיים במערכים של סוגיהם בפועל. לכן, יציקת סוג אינה נדרשת. ניתן להשתמש בהם לאחסון אלמנטים מהסוג או מהסוגים שצוינו. חלק משיעורי האוסף הגנרי הם List, Dictionary, SortedList, HashSet, Queue, Stack.
הרשימה הגנרית מכילה אלמנטים מהסוג שצוין. זה יכול להגדיל את הרשימה בהתאם בעת הוספת אלמנטים. כאשר יש משפט כדלקמן, כל האלמנטים שניתן לאחסן ברשימה1 צריכים להיות מספרים שלמים, רשימה1 – רשימה חדשה ();
המילון הגנרי ב-C הוא אוסף של מפתחות וערכים. כאשר יש הצהרה כדלקמן, מילון האובייקטים1 יכול לאחסן מפתחות מסוג int וערכי סוג מחרוזת.
מילון מילון1=מילון חדש ();
אוסף גנרי SortedList מאחסן צמדי מפתח וערכים בסדר עולה של מפתח כברירת מחדל. הדוגמה למטה מאחסנת מפתח מסוג int וערך סוג מחרוזת.
SortedList s0=New SortedList ();
אלה הן כמה דוגמאות לאוסף גנרי ב-C. אוספים אלה יכולים לאחסן ערכים מרובים של סוגי הנתונים שצוינו. אז, הם מוקלדים היטב.
מהו אוסף לא גנרי ב-C?
ניתן להשתמש במערכים לאחסון אלמנטים מרובים. חסרון אחד הוא שהוא יכול לאחסן אלמנטים מאותו סוג נתונים. ישנן מחלקות ב-C שניתן להשתמש בהן כדי לאחסן ערכים או אובייקטים רבים המכונים אוספים. אוספים עוזרים לאחסן, לעדכן, למחוק, לחפש, למיין אובייקטים.ניתן להגדיל או להקטין את גודל האוסף באופן דינמי.
כמה מחלקות אוסף לא-גנריות הן ArrayList, SortedList, Stack, Queue ו-HashTable. כל מחלקת אוסף מיישמת את הממשק IEnumerable. זה עוזר לחזור על האלמנטים של הפריטים באוסף באמצעות הלולאה הקדמית.
ArrayList היא חלופה למערך. אם יש מערך שיכול לאחסן 10 אלמנטים, הוא לא יכול לאחסן 20 אלמנטים. אם המערך אותחל ל-10 אלמנטים אבל מאחסן רק 5 אלמנטים, אז השאר הוא לא בשימוש. לכן, מערך קבוע. ב-ArrayList, ניתן להוסיף או להסיר אלמנטים בהתאם לאינדקס. זה מאפשר הקצאת זיכרון דינמית. ניתן להשתמש בשיטת המיון כדי למיין את האלמנטים בסדר עולה.
The HashTable משמש לייצוג אוסף של צמדי ערכי מפתח. הם מאורגנים על סמך ה-hashCode של המפתח. לכן, לכל אלמנט יש זוג ערכי מפתח. ניתן להשתמש במפתח כדי לגשת לרכיב מסוים באוסף.המחסנית מייצגת את הגישה האחרונה שנכנסה, יוצאת ראשונה לפריטים. התור משמש לגישה ראשונה יוצאת ראשונה לפריטים. אלו הם חלק מהאוספים הלא-גנריים הנתמכים על ידי C. אוספים אלה יכולים לאחסן אלמנטים מסוגים שונים.
מהו הדמיון בין אוסף גנרי ולא גנרי ב-C?
ניתן להשתמש באוסף הגנרי והלא גנרי כדי לאחסן רכיבים מרובים ב-C
מה ההבדל בין אוסף גנרי ולא גנרי ב-C?
אוסף כללי לעומת לא גנרי ב-C |
|
אוסף גנרי הוא מחלקה המספקת בטיחות סוג ללא צורך לנבוע מסוג אוסף בסיס וליישם חברים ספציפיים לסוג. | אוסף לא גנרי הוא מחלקה מיוחדת לאחסון ואחזור נתונים המספקת תמיכה בערימות, תורים, רשימות וטבלאות גיבוב. |
מרחב שם | |
שיעורי האוסף הגנרי נמצאים במערכת. אוספים. מרחב שמות כללי. | שיעורי האוסף הלא-גנרי נמצאים במערכת. מרחב השמות של אוספים. |
סוג | |
אוסף כללי מוקלד היטב. | אוסף לא גנרי אינו מוקלד חזק. |
רכיבי אחסון | |
האוספים הגנריים מאחסנים אלמנטים פנימיים במערכים של הסוגים שלהם בפועל. | האוספים הלא-גנריים מאחסנים אלמנטים פנימיים במערכים של אובייקטים כך שהם יכולים לאחסן כל סוג של נתונים. |
סיכום – אוסף כללי לעומת לא גנרי ב-C
מאמר זה דן בהבדל בין אוסף גנרי לאוסף לא גנרי ב-C. ההבדל בין אוסף גנרי לאוסף לא גנרי הוא שאוסף גנרי מוקלד בצורה חזקה ואילו אוסף לא גנרי אינו מוקלד חזק.