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