Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java for循环和类定义_Java_Class_Loops_Definition_Mutators - Fatal编程技术网

Java for循环和类定义

Java for循环和类定义,java,class,loops,definition,mutators,Java,Class,Loops,Definition,Mutators,嘿,我是java的新手,所以请容忍我:) 我有对象v1、v2、v3,每个对象都包含足球运动员统计数据的详细信息 int LessThan25 = 0; for (int i = 0; i < topscorer.size(); i++) { while (v**[i]**.getGoals() < 25) { LessThan25++; } } int-LessT

嘿,我是java的新手,所以请容忍我:)

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

     int LessThan25 = 0;
     for (int i = 0; i < topscorer.size(); i++)
     {
         while (v**[i]**.getGoals() < 25)
         {
             LessThan25++;
         }
     }
int-LessThan25=0;
对于(int i=0;i
我的问题是如何使这个循环工作?我希望能够将for循环中的整数用于whilev循环,该循环链接到我的类定义。(黑体部分)


感谢您的帮助:)

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

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

    for(Player player : players) {
        if(player.getGoals < 25)
            lowerThan25Goals++;
    }
for(玩家:玩家){
如果(player.getGoals<25)
低于25个目标++;
}

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

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

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

for(Scorer s:topScorer)//Scorer是列表中的对象类型
如果(s.getGoals()<25)
lessThan25++;

用户3437460的答案就是你想要的

 for(Scorer s : topScorer)
  if(s.getGoals() < 25)
    lessThan25++;
for(记分员s:上记分员)
如果(s.getGoals()<25)
lessThan25++;
一个球员的例子会很好, 似

玩家克洛纳尔多=新玩家(年龄、体型、平均进球数(总进球数))

球员lMessi=新球员(年龄、身高、平均进球数(总进球数))

请看一下你的while循环

 while (topScorer[i].getGoals() < 25)
         {
             LessThan25++;
         }
while(topScorer[i].getGoals()<25)
{
LessThan25++;
}
这是一个无限循环。因为如果你达到了一个顶级得分者,也就是v[i]的进球数少于“25”个,你就永远不会停止这个循环,你的计数器也会少于25个,从而打破你ALU的极限;) (小写变量!)

可能是错误,或者您提供的代码丢失。
因此,作为Java的“新手”,您只需知道。

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

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

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

什么是
topscorer
?@DonD您可以显示更多代码吗?例如,在这里声明
topScorer
v
。ArrayListtopscorer=new ArrayList()的选择错误;播放器v1=新播放器(br.read(),br.readLine(),br.readLine(),br.readLine(),br.read(),br.readLine(),br.readLine(),br.readLine());上取芯器添加(v1);这是什么黑魔法:v**[i]**。你能清楚地解释一下你到底想达到什么目的吗?这就是我想要的。非常感谢你。祝福你buddy@DonD欢迎你可以点击我答案旁边的空格来接受我的答案。你可以得到2个代表积分作为回报。
 while (topScorer[i].getGoals() < 25)
         {
             LessThan25++;
         }
long lessThan25 = topScorer.stream()
                              .filter(element -> element.getGoals() < 25).count();