簡體   English   中英

在Java中定義數組對象

[英]Define an array object in java

我找到了一個對我有用的類聲明,但是我想知道是否可以將此類寫得更“簡短”:

public class Data implements Comparable <Data>{
    public Data     (int category,  String quality, String title ) {
        super();
        this.category = category;
        this.quality = quality;
        this.title = title;
    }
    int    category;
    String quality;
    String title;

    @Override
    public int compareTo(Data d) {
       return this.getDuration_value() - (d.getDuration_value());
    }
}

為什么我經常要提“類別,質量標題”? 為什么是“ super()”? 我想短一點。 我找到了其他解釋,但是沒有這種“復雜結構”。

這些行給出了“數據”,我希望不必事先聲明數組的長度:

Data[] myDataArray = { 
        new Data(0,                 // category "0"
                "***",              // quality
                "MyTitle1")         // title

        new Data(0,                 // same category "0"
                "**",               // quality
                "MyTitle2")         // title
}

super() 調用父類的構造函數 如果跳過此步驟,Java將自動調用默認構造函數(不帶參數),因此您可以在示例中跳過此行。

數組的長度應提前聲明。 如果這是一個問題,則應改用ArrayList之類的容器。 ArrayList將在需要時自動調整大小。

至於多次提到這些字段,Java只是很冗長。

您提供的示例實現了Comparable ,只有在您想要比較數據對象時(例如,使用比較器將“ Obj A”大於“ Obj B”時才需要)。 您不需要構造函數。 它僅存在以確保元素被初始化。 否則,您可能最終會遇到NullPointerExceptions並且無法進行比較。

這個例子很“安全”,可以防止某些問題。

如果只需要一個“列表”,則可以使用ArrayList<Data>或其他List選項。

暫無
暫無

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

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