Java for 循环和 class 定义

Java for loop and class definition

嘿,我在 java 还很新,所以请多多包涵 :)

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

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

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

感谢帮助:)

使用 'if' 条件而不是 'while',我想这就是你要找的。

使用增强的 for 循环 - 如果使用 Java 5+ 则更好。
按照惯例,变量名称应以小写字母开头。

    for(Player player : players) {
        if(player.getGoals < 25)
            lowerThan25Goals++;
    }

我现在明白你的意思了,你可以这样做来访问 each 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 each loop 也有效):

for(Scorer s : topScorer)   //Scorer is the object type in your list
    if(s.getGoals() < 25)
        lessThan25++;

user3437460的答案就是您要找的

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

一个玩家的例子会很好, ……喜欢

Player cRonaldo = new Player(age, size, avgGoals, (total)goals);

Player lMessi = new Player(age, size, avgGoals, (total)goals);

请看一下你的 while 循环

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

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

可能是错误,或者缺少您提供的代码。 所以只为你,从 'new' 到 Java,要知道。

如果您正在使用 Java 8,您可以使用 Stream API 轻松解决此问题,只需一行 代码:

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

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