עבור לתוכן

|JAVA| איך ממשים comparator לרשימה שיש לי ?

Featured Replies

פורסם

יש איזה מדריך לcomparator ?

פורסם

לא ברור בכלל מה אתה רוצה.

תאר באילו מחלקות מדובר, מה האובייקטים ומה אתה מנסה לעשות.

פורסם
  • מחבר

comparator ?

פורסם
  • מחבר
:xyxthumbs:
  • 2 שבועות מאוחר יותר...
פורסם

אפשר להשתמש בcomparatorגם בליסט? לא רק בPRIORITYQUEUE?

או שאפשר בכל מבנה נתונים?

פורסם

אפשר להשתמש ב-Comparator בכל פונקציה שמקבלת Comparator.

יש מבני נתונים שהם ממויינים מעצם הגדרתם - לדוגמה, PriorityQueue ו-TreeMap, ולכן הם צריכים דרך להשוות בין כל שני איברים שלהם. לכן הם צריכים לקבל Comparator, או איברים שמממשים את הממשק Comparable.

מבנה כמו List, לדוגמה, הוא לא ממוין באופן טבעי (הוא יכול להחזיק איברים באיזה סדר שאתה רוצה) ולכן הוא לא דורש שהאובייקטים יהיו ברי-השוואה. אבל, יש פונקציות מסויימות שכן דורשות שהם יהיו ברי-השוואה - לדוגמה, אם תרצה למיין את הרשימה באמצעות הפונקציה Collections.sort אז תצטרך להיות מסוגל להשוות בין איברים.

פורסם

אפשר להשתמש ב-comparator בכל פונקציה שמקבלת comparator.

למה הכוונה?

אני יודע שבתור עדיפויות, הפעולה מוציאה איבר לפי מה שכתבתי בקומפטטור.

יש לזה עוד שימושים? או שאותו שימוש, רק על מבני נתונים אחרים?

פורסם

ערכתי את ההודעה כך שתהיה יותר ברורה.

אפשר להשתמש בקומפרטור להוציא איבר לפי פונקציה, כמו בתור עדיפויות?

אם כן, איך עושים את זה?

לפי מה שזכור לי, בתור העדיפויות הפונקציה שמוציאה את האיבר דורשת קומפרטור, זה לא שכתבתי את הפונקציה בעצמי.

פורסם

אתה בסה"כ צריך לממש את הממשק comparator כלומר את שני המתודות equals ו-compare.

אתה יכול להגדיר את המותודות הללו איך שבא לך (לא באופן שרירותי אלא באופן שאתה רוצה להגדיר יחס סדר במחלקה שלך)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים