2015-12-05 74 views
-4

假設: 如果我將我的一個類調用到Main方法中,我可以使用對象ArrayList使列表有用的方法有多少種?在Java中調用一個類作爲ArrayList有什麼好處?

如:

ArrayList <Account> listOfAccounts = new ArrayList<>(); 

我可以用listOfAccounts爲整型?如果是的話,怎麼樣?或者如何將listOfAccounts隱藏爲Integer ArrayList,以便我可以在下面的方法中使用它們? 類方法:

int findMax(ArrayList <Integer> numberOfAccount){}; 

打印在主方法:

println("Maximum amount of money"+findMax(listOfAccounts)); 

任何幫助清除混亂將不勝感激。由於

+0

如果要查找列表中的項目數,可以使用'myList.size()'。除此之外,我不知道你在問什麼。 – khelwood

+0

好吧,countAccounts方法是一個愚蠢的例子!我打算說可能findMaximum(ArrayList max)。如何使用findMaximum(listOfAccounts)?因爲listOfAccounts是對象,而不是特定類型的arrayList。 @khelwood – MHR

回答

1

如果你只需要算帳戶數量,你可以做

int size = listOfAccounts.size(); 

如果要提取這些帳戶號碼的列表,你可以做

List<Integer> numberOfAccounts = listOfAccounts.stream() 
              .map(a -> a.getNum()) 
              .collect(Collectors.toList()); 

如何很多方法我可以使用對象ArrayList來使列表有用嗎?

太多了。

我可以使用listOfAccounts作爲整數嗎?

其帳戶清單。如果您想將其用作整數列表,則必須創建一個包含所需整數的新列表。

如何隱藏listOfAccounts作爲Integer ArrayList,以便我可以在下面的方法中使用它們?

你不能轉換列表,但你可以得到一個整數。我建議你閱讀這個類的Javadoc瞭解更多細節。

int i = numberOfAccounts.get(i); 

for(int i : numberOfAccounts) { 
    // iterate over the list 

,或者使用T作爲一個流

numberOfAccounts.stream() 
       .forEach(System.out::println); 

如何使用findMaximum(listOfAccounts)?因爲listOfAccounts是對象,而不是特定類型的arrayList。

如果您只想要某個帳戶的某個字段的最大值,則不需要首先提取List<Integer>

List<Account> accounts = ... 
OptionalInt max = accounts.stream() 
     .mapToInt(Account::getNum) 
     .max(); 
+0

問題是:(int和迭代)給我的錯誤「帳戶不能轉換爲int」。 :( – MHR

+0

@ M.Harun更正這就是爲什麼我說你需要將你的帳戶列表轉換爲整數列表,並給了你一個如何做到這一點的例子,讓我在我的答案中更清楚地說明...... –

+0

非常感謝@Peter Lawrey – MHR

相關問題