-2

嘿,我对 java 很陌生,所以请多多包涵:)

我有对象 v1、v2、v3,每个对象都包含足球运动员统计数据的详细信息

     int LessThan25 = 0;
     for (int i = 0; i < topscorer.size(); i++)
     {
         while (v**[i]**.getGoals() < 25)
         {
             LessThan25++;
         }
     }

我的问题是如何使这个循环工作?我希望能够将 for 循环中的整数用于我的 while v 循环,该循环链接到我的类定义。(加粗部分)

感谢帮助:)

4

5 回答 5

0

使用“if”条件而不是“while”,我认为这就是你想要的。

于 2015-09-25T08:07:33.303 回答
0

使用增强的for循环 - 如果使用 Java 5+,这是一个更好的习惯用法。
按照约定,变量名称应以小写开头。

    for(Player player : players) {
        if(player.getGoals < 25)
            lowerThan25Goals++;
    }
于 2015-09-25T08:10:59.177 回答
0

我现在明白你的意思了,你可以这样做来访问每个topScorer 对象:

for(int x=0; x<topScorer.size(); x++)    //iterate through all elements in topScorer
    if(topScorer.get(x).getGoals() < 25)
        lessThan25++;

访问ArrayList中的元素的语法是:

list.get(x) where x is the element you wanted to access (starts from 0)

或者:

当然,增强的 for 循环(对于每个循环也有效):

for(Scorer s : topScorer)   //Scorer is the object type in your list
    if(s.getGoals() < 25)
        lessThan25++;
于 2015-09-25T08:13:04.557 回答
0

user3437460的答案就是你要找的

 for(Scorer s : topScorer)
  if(s.getGoals() < 25)
    lessThan25++;

一个 Player 的例子会很好,……。像

球员 cC罗 = 新球员(年龄、体型、平均进球数、(总)进球数);

球员 lMessi = 新球员(年龄、体型、平均进球数、(总)进球数);

请看一下你的while循环

 while (topScorer[i].getGoals() < 25)
         {
             LessThan25++;
         }

这是一个无限循环。因为如果你曾经达到 topScorer aka v [i]的目标少于“25”的地步,你永远不会停止那个循环,你的计数器LessThan25会打破你的 ALU 的限制;) (小写变量!)

可能是一个错误,或者您提供的代码缺失。所以只是为了让你知道,对 Java 来说是“新手”。

于 2015-09-25T08:36:12.047 回答
0

如果您使用的是 Java 8,则只需一行代码即可使用 Stream API 轻松解决此问题:

long lessThan25 = topScorer.stream()
                              .filter(element -> element.getGoals() < 25).count();

此外,使用 Streams JVM 可以提高后台性能。

于 2015-09-25T13:06:15.400 回答