簡體   English   中英

用Java替代NSSortDescriptor是什么?

[英]What's alternative NSSortDescriptor in Java?

我有ArrayList,其中包含自定義數據類。

ArrayList<MyData> list

自定義數據類有幾個字段

class MyData {
   private int num;
   private String name;

   etc....

   getter/setter...
}

我想按字段對列表進行排序(例如:num)

Objecitive-C具有可以對對象進行排序的NSSortDescriptor。

NSSortDescriptor類參考

還有其他選擇嗎? 或其他解決方案?

您可以使用Comparable和Comparator接口..並使用Collection.sort()。

如果使用自定義類型的集合(即不是原始類型),則需要實現Comparable和Comparator接口。

有關詳細示例,請訪問http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/

希望這篇文章對您有所幫助。

java.util.Comparatorjava.util.Collection.sort一起應該可以解決問題。

您也可以讓MyData實現java.util.Comparable並使用其他sort方法,但這並不那么靈活。

Java中沒有與NSSortDescriptor類似的NSSortDescriptor :Java排序使用的樣式與NSMutableArray類的sortUsingComparator:方法更相似:

Collections.sort(list, new Comparator<MyData>() {
    // This is similar to the comparator block of Cocoa
    public int compare(MyData o1, MyData o2) {
        // Put the comparison code here
        ...
    }
});

實現ComparableComparator並使用Collections.sort()

可比

public class MyClass implements Comparable<MyClass>{
    public int x;

    public int compareTo(MyClass mc){
        return x - mc.x;
    }
}

比較器

public class MyClass{
    public int x;
}

public class MyClassComparator implements Comparator<MyClass>{
    public int compare(MyClass mc1, MyClass mc2){
        return mc1.x - mc2.x;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM