2015-12-20 20 views
1

我有一本名爲有三個字段級的數組的數組同場,INT pYear,字符串名和字符串作者。現在我想初始化數組中的所有pYear。是否有一個更快的方法來做到這一點比:分配中的類

bList[0].pYear=1996; 
bList[1].pYear=1998; 
bList[2].pYear=2000; 

等等?

+0

存儲值在哪裏? – Maroun

+0

我想現在手動分配它們,所以基本上沒有。我應該首先將它們存儲在整數數組中嗎? –

+0

如何爲'bList'數組創建'Book'對象? –

回答

0

如果「快」你的意思是輸入更少的代碼,你可以做這樣的事情:

int[] years = {1996,1998,2000,...}; 
for (int i = 0; i < years.length && i < bList.length; i++) 
    bList[i].pYear = years[i]; 

當然,這將是更好地使pYear私人和使用setter方法,而不是直接賦值。

在java中8,你可以將其降低到兩行:

int[] years = {1996,1998,2000,...}; 
IntStream.range(0,bList.length).forEach(i->bList[i].pYear = years[i]); 
+0

這很好,但它基本上是相同的方法。我想知道是否有辦法像你的代碼的第一行那樣做。無論如何,感謝您的建議。 –

+1

@Abouzaram你可以將它減少到兩行。請參閱編輯 – Eran

0

如果您有多個字段的特定對象(類),它可能是不好的設計(但不是unnacceptable設計,特別是如果這是一個賦值)以每個字段而不是每個對象的方式初始化它。

如果有很多對象,你可以創建一個簡單的JSON或XML文件與書籍字段的數據,並創建BufferedReader一個簡單的加載程序爲您創建一個List<Book>new Book(year, name, author);,並且您可以轉換成數組如果需要的話。