ההבדל בין האשטבל למילון

תוכן עניינים:

Anonim

ה ההבדל העיקרי בין האשטבל למילון הוא ש Hashtable הוא מבנה נתונים שהוקלד בצורה חלשה, כך שניתן להוסיף מפתחות וערכים מכל סוג שהוא בעוד שהמילון הוא מבנה נתונים שהוקלד בצורה חזקה, כך שניתן להוסיף רק את האלמנטים המספקים את סוגי הנתונים שצוין הן למפתח והן לערך.

Hashtable ומילון הם שני מבני נתונים עיקריים. שניהם יכולים להחזיק נתונים כזוגות ערך מרכזיים. Hashtable או מילון יכולים להכיל רק מפתחות ייחודיים. המתכנת יכול למצוא או להסיר ערך ספציפי באמצעות המפתח. האשטבל אינו מוקלד בצורה חזקה. לכן, המתכנת יכול להוסיף כל אלמנט של צמד ערך-מפתח לשבלבל. מצד שני, המילון מודפס בחוזקה. על המתכנת לציין את סוגי הנתונים של המפתחות והערכים. לא ניתן להוסיף אלמנטים שאינם מספקים את סוגי הנתונים הנתונים. לדוגמה, אם למילון יש סוג כללי, המתכנת יכול להוסיף רק רכיבים עם מפתחות מסוג int וערכי סוג מחרוזת.

מילון, האשטבל, מבני נתונים

מהו סוג הנתונים הגנרי

סוג נתונים כללי הוא סוג נתונים המאפשר למשתמש להגדיר מחלקות ושיטות עם מצייני מיקום. מהדרים כגון C# יכולים להחליף את מצייני המיקום בסוג נתונים שצוין בזמן הידור. הוא משמש ליצירת שיעורים ושיטות למטרות כלליות. בעת הגדרת מחלקה גנרית, על המתכנת להשתמש בסוגריים זוויתיים (). סוגריים אלה מכריזים על מחלקה או שיטה כסוג כללי.

מהו האשטבל

Hashtable הוא מבנה נתונים המיישם סוג נתונים מופשט של מערך אסוציאטיבי, מבנה שיכול למפות מפתח לערכים. זה אינו סוג נתונים כללי. עיין בקטע קוד כדלקמן.

איור 1: תוכנית C# עם Hashtable

בתוכנית לעיל, מספרים הם אובייקט מסוג Hashtable. זוגות ערך-מפתח מתווספים ל- Hashtable. מהצהרה 15 עד 17, המפתחות הם מסוג int והערכים הם מחרוזת סוג. בהצהרה 18, המפתח והערך הם מחרוזות. A Hashtable הוא מבנה נתונים שהוקלד מדי שבוע. לכן, המתכנת יכול להוסיף מפתחות וערכים מכל סוג שהוא ל- Hashtable.

איור 2: פלט תוכנית HashTable

הפלט של התוכנית הוא כמו לעיל. ה- Hashtable אינו מדפיס את הרשומות לפי הסדר בו נוספו האלמנטים. לכן הוא אינו שומר על הסדר שהוכנס.

מהו מילון

מילון משתמש במושג Hashtable. זהו סוג נתונים כללי. עיין בתוכנית שלהלן. שמות הוא אובייקט מסוג מילון. יש לו סוגי נתונים ספציפיים לאחסון עבור מפתחות וערכים. על פי תוכנית זו, הסוגים הגנריים מוגדרים כ. לכן, בעת הוספת אלמנטים למילון, המפתחות והערכים צריכים להיות מחרוזת מסוג.

איור 3: תוכנית C# עם מילון

לכל המרכיבים שנוספו למילון לעיל יש זוגות מפתחות וערכים מסוג String. הדפסת המפתח והערכים לקונסולה תעניק פלט הדומה לאיור 4. שליפת הפריטים ממילון תדפיס את הרשומות באותו סדר שבו נוספו האלמנטים. לכן היא שומרת על הסדר שהוכנס.

איור 4: פלט תוכנית מילון

בסך הכל, מילון מהיר בביצוע אך הוא אינו מספק בטיחות חוטים.

ההבדל בין האשטבל למילון

הַגדָרָה

Hashtable הוא מבנה נתונים המיישם מערך נתונים מופשט של מערך אסוציאטיבי, מבנה שיכול למפות מפתח לערכים. מילון הוא מבנה נתונים המבוסס על Hashtable המאחסן ערכים על בסיס מפתחות.

הוספת אלמנטים

יתר על כן, Hashtable הוא מבנה נתונים שהוקלד חלש. לכן, המתכנת יכול להוסיף מפתחות וערכים מכל סוג אובייקט לטאבלט. מילון הוא מבנה נתונים בהקלדה חזקה. (

סוּג

כמו כן, Hashtable אינו כללי בעוד מילון הוא סוג כללי.

מהירות ביצוע

בנוסף, יש איגרוף ו unboxing ב- Hashtable אך לא במילון. המילון צורך זיכרון מינימלי ומבצע מהר יותר מה- Hashtable.

אחזור האלמנטים

אחזור האלמנטים ב- Hashtable אינו שומר על הסדר שהוכנס. מצד שני, אחזור האלמנטים ממילון שומר על הסדר שהוכנס.

בטיחות חוט

תחביר לדוגמא

Hashtable ht = New Hashtable ();

מילון מילונים = מילון חדש ();.

סיכום

ההבדל בין Hashtable למילון הוא שה- Hashtable הוא מבנה נתונים שהוקלד בצורה חלשה, כך שניתן להוסיף מפתחות וערכים מכל סוג שהוא בעוד שהמילון הוא מבנה נתונים שהוקלד מאוד כך שניתן להוסיף רק את האלמנטים שסיפקו את המפורט סוגי נתונים הן למפתח והן לערך.

התייחסות:

1. "C# Hashtable Class." Www.tutorialspoint.com, נקודת הדרכה, 21 ביולי 2018, זמין כאן.2. "C# Hashtable." סוגי נתונים ב- C#, מורי הדרכה. זמין כאן.3. "מילון C# - Javatpoint." Www.javatpoint.com, זמין כאן.

ההבדל בין האשטבל למילון