我有一本名爲有三個字段級的數組的數組同場,INT pYear,字符串名和字符串作者。現在我想初始化數組中的所有pYear。是否有一個更快的方法來做到這一點比:分配中的類
bList[0].pYear=1996;
bList[1].pYear=1998;
bList[2].pYear=2000;
等等?
我有一本名爲有三個字段級的數組的數組同場,INT pYear,字符串名和字符串作者。現在我想初始化數組中的所有pYear。是否有一個更快的方法來做到這一點比:分配中的類
bList[0].pYear=1996;
bList[1].pYear=1998;
bList[2].pYear=2000;
等等?
如果「快」你的意思是輸入更少的代碼,你可以做這樣的事情:
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]);
這很好,但它基本上是相同的方法。我想知道是否有辦法像你的代碼的第一行那樣做。無論如何,感謝您的建議。 –
@Abouzaram你可以將它減少到兩行。請參閱編輯 – Eran
如果您有多個字段的特定對象(類),它可能是不好的設計(但不是unnacceptable設計,特別是如果這是一個賦值)以每個字段而不是每個對象的方式初始化它。
如果有很多對象,你可以創建一個簡單的JSON或XML文件與書籍字段的數據,並創建BufferedReader
一個簡單的加載程序爲您創建一個List<Book>
與new Book(year, name, author);
,並且您可以轉換成數組如果需要的話。
存儲值在哪裏? – Maroun
我想現在手動分配它們,所以基本上沒有。我應該首先將它們存儲在整數數組中嗎? –
如何爲'bList'數組創建'Book'對象? –