2017-04-05 40 views
-5

我想要一個方法,需要x的數量ArrayList<>作爲參數。當我使用參數時,這不起作用。參數只保留給int和String等嗎?爲什麼參數不成爲包含我的數組列表的新數組?我認爲有一種方法可以將多個參數值賦給一個方法,該方法會變成方法內部的數組?使用「args」,但方法仍然沒有采取多個數組作爲參數?

ArrayList<String> list1 = new ArraytList(); 
list1.add("1"); 
ArrayList<String> list2 = new ArrayList(); 
list2.add("2"); 
list2.add("3"); 

的打印方法:

public void print(ArrayList<String> args){ 
    for(int i = 0; i < args.length; i++){ 
     for(int j = 0; j < args[i].size(); j ++){ 
      System.out.println(args[i].get(j)); 
     } 
    } 
} 

不工作

+5

那是因爲你想傳遞兩個的ArrayList到您的方法時,將只接受一個。 –

+1

是的,你的printElements只有一個參數,但你傳遞了兩個參數。 – steve

+0

此外,我假設您使用lambda表達式使您的代碼更短,更簡潔?在這種情況下,你可以減少你的lambda表達式到這個-----> args.forEach(System.out :: println); –

回答

2

printElements需要ArrayList<String>類型的單個參數,但你想給它ArrayList類型的兩個參數。

+0

如果我會執行'printElements(String args)',那將需要多個String作爲參數 - 而args是一個數組。我想有一個參數在x數量的數組中,並將它們變成一個嵌套數組(參數) - 就像同樣的方式。 – Lealo

+0

@Lealo no。這將需要一個數組作爲參數。如果你想採取任意數量的'ArrayList ''參數,那麼設置年齡類型爲'ArrayList ...'或者ArrayList >' – Alexander

+0

'ArrayList ... args'就是我正在尋找的東西對於! – Lealo

0

使用

first.addAll(second); 
printElements(first); 
+1

'addAll'返回一個'boolean',而不是一個新的列表。 –

+0

對不起我的壞。更新它。感謝@JoeC的糾正 – stinepike

相關問題