2015-12-05 38 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

相关问题