Heim  >  Fragen und Antworten  >  Hauptteil

So sortieren Sie Objekte verschiedener Klassen in Java

Angenommen, zwei Klassen A und B haben ein gemeinsames Attribut Datum. Ich möchte die beiden Listen<A> nach Datum sortieren

Die mir bekannte Methode besteht darin, eine Basisklasse zu schreiben, dann erben A und B diese Basisklasse und rufen dann Collections.sort() zum Sortieren auf.

Gibt es eine bessere Möglichkeit oder eine ähnliche Methode, die Reflektion verwendet? Oder gibt es eine vorgefertigte Bibliothek, die verwendet werden kann?

学习ing学习ing2658 Tage vor799

Antworte allen(3)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-06-14 10:54:58

    使用上面你说的是较好的方法,1.可以利用java本身提供的api减少了代码量,2.上面的方式在代码风格上也蛮好的。
    还有一种思路是
    将每A,B类的date提出来并与A,B对象本身建立关联,比如实现一个类Index,Index中有两个属性,date和A,B类对象的引用或者id,每个A,B类对象关联一个Index对象,然后对Index对象排序,然后通过id找到对应A或B的对象,同index对象一样的顺序,即排好序。

    Antwort
    0
  • 欧阳克

    欧阳克2017-06-14 10:54:58

    list.sort((l1,l2) -> l1.getDate().compareTo(l2.getDate()));

    Antwort
    0
  • typecho

    typecho2017-06-14 10:54:58

    1. 弄一个Base Class,A、B extends之

    2. 弄一个Interface,A、B implements之

    3. 弄一个List<Object>,然后sort之,Comparator里面需要强转类型

    4. 弄一个Wrapper class,包装A、B,然后放在List中,sort之

    Antwort
    0
  • StornierenAntwort