Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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 在包含另一个类的对象的列表上迭代_Java_List_Loops_Assign - Fatal编程技术网

Java 在包含另一个类的对象的列表上迭代

Java 在包含另一个类的对象的列表上迭代,java,list,loops,assign,Java,List,Loops,Assign,我正在学习Java,我有一个作业要做。以下是要求 有两个班 跑步者 马拉松 我们必须创建一个Runner列表,其中包含Runner类的实例 并且必须为实例name、age和agegroup赋值,这些实例取自另一个txt文件。 在另一部分中,需要创建90到180(含90到180)之间的随机数,并迭代每个运行程序,并将随机数值分配给运行程序的时间实例 我被困在最后一部分了。我不知道如何迭代跑步者列表中的每个跑步者。我正在包括迄今为止我所完成的代码。 我需要有关runMarathon()方法的帮助,该

我正在学习Java,我有一个作业要做。以下是要求

有两个班

  • 跑步者
  • 马拉松
  • 我们必须创建一个Runner列表,其中包含Runner类的实例 并且必须为实例
    name
    age
    agegroup
    赋值,这些实例取自另一个txt文件。
    在另一部分中,需要创建90到180(含90到180)之间的随机数,并迭代每个运行程序,并将随机数值分配给运行程序的时间实例

    我被困在最后一部分了。我不知道如何迭代跑步者列表中的每个跑步者。我正在包括迄今为止我所完成的代码。
    我需要有关
    runMarathon()
    方法的帮助,该方法的需求状态为

    为名为
    runMarathon()
    MarathonAdmin
    类编写一个公共方法,该方法不带参数,也不返回值。该方法应在运行程序上迭代,并为每个运行程序生成一个介于90和180(包括)之间的随机数,该随机数应用于设置该运行程序的时间(以分钟为单位)

    import java.util.*;
    导入java.io.*;
    进口.*;
    导入java.util.Random;
    /**
    *在这里写一篇马拉松课的描述。
    *
    *@author(你的名字)
    *@version(版本号或日期)
    */
    公共级马拉松
    {
    //实例变量-将下面的示例替换为您自己的
    私人名单;
    私有字符串组;
    私弦时代;
    私有随机数;
    私有字符串结果;
    串管器;
    弦乐跑者;
    扫描线扫描仪;
    INTANS;
    Runner runnerobj=新的Runner();
    /**
    *MarathonAdmin类对象的构造函数
    */
    公共马拉松
    {
    //初始化实例变量
    runners=newarraylist();
    }    
    /**
    *方法示例-将此注释替换为您自己的注释
    *
    *@param y方法的示例参数
    *@返回x和y的总和
    */
    public void readInRunners()
    {
    String pathName=OUFileChooser.getFilename();
    File aFile=新文件(路径名);
    字符串命名器;
    BufferedReader bufferedFileReader=null;
    尝试
    {
    bufferedFileReader=new BufferedReader(new FileReader(aFile));
    字符串currentLine=bufferedFileReader.readLine();
    while(currentLine!=null)
    {
    lineScanner=新扫描仪(currentLine);
    lineScanner.useDelimiter(“,”);
    nameRunner=lineScanner.next();
    agrunner=lineScanner.next();
    年龄组=结果;
    int size=runners.size();
    if(Integer.parseInt(AgRunner)<18)
    {
    结果=“初级”;
    System.out.println(currentLine+“category”+“:Junior”);
    }
    if(Integer.parseInt(AgRunner)>55)
    {
    结果=“高级”;
    System.out.println(currentLine+“category”+“:Senior”);
    }
    if(Integer.parseInt(agrunner)>18&&Integer.parseInt(agrunner)<55)
    {
    结果=“标准”;
    System.out.println(currentLine+“category”+“:Standard”);
    }
    Runner runnerobj=新的Runner();
    runnerobj.setName(nameRunner);
    runnerobj.setAgeGroup(ageGrouprunners);
    System.out.println(runnerobj);//粗略测试
    添加(runnerobj);
    currentLine=bufferedFileReader.readLine();
    }
    }
    捕获(异常和异常)
    {
    System.out.println(“错误:+anException”);
    }
    最后
    {
    尝试
    {
    bufferedFileReader.close();
    }
    捕获(异常和异常)
    {
    System.out.println(“错误:+anException”);
    }
    }
    }
    公共空间跑马拉松()
    {
    int size=runners.size();
    对于(int runnersIndex=0;runnersIndex,对.nextInt()的调用不会给出您期望的范围,因为计算是错误的。您也不需要进行计算-只需提供上限即可

    使用runnersIdx设置循环的方法是,只需使用索引访问运行程序即可。请参阅文档,因为这是您使用的(
    List

    无论何时学习编程语言,您都需要将文档网站添加到书签中,并经常参考它。java 7的文档如下:


    您也可能会发现有帮助。

    runMarathon()
    函数中执行循环。您需要从
    列表中检索每个跑步者并指定时间

    for ( int runnersIndex = 0; runnersIndex <= size; runnersIndex ++ ) {
        this.randomNumber = new Random();
        ans = randomNumber.nextInt(190 - 80 +1 ) + 90 ;
    
        Runner runner = runners.get(runnersIndex);
        runner.setTime(ans); //make sure you create the getters/setters for this value
    
    }
    

    用于(int runnersIndex=0;runnersIndex您的代码没有任何缩进,这使得所有代码都左对齐,几乎不可能阅读、理解和调试。请重新格式化您发布的代码,给它适当的缩进,通常每个块4个空格,并确保同一块上的所有代码都在相同的缩进级别。您的如果您继续,我们将不胜感激,这将有助于提高您获得得体、及时回答的机会。@HovercraftFullOfEels:“通常每个街区3个空格”根据我的经验,-4更常见。@JonSkeet:我怎么能和你争论呢?改变太多了。我还必须在原始海报上加上一句话,你想减少空行。一行一行空行就足够了。任何超过这一行的内容都会降低代码的可读性。这里的等式是:提高代码可读性,提高代码的清晰度问题==获得体面答案的几率提高。祝你好运!一艘装满鳗鱼的气垫船是一个可怕的想法
    
    for ( int runnersIndex = 0; runnersIndex <= size; runnersIndex ++ ) {
        this.randomNumber = new Random();
        ans = randomNumber.nextInt(190 - 80 +1 ) + 90 ;
    
        Runner runner = runners.get(runnersIndex);
        runner.setTime(ans); //make sure you create the getters/setters for this value
    
    }