Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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_Arraylist - Fatal编程技术网

Java 使用文本中的不同变量创建新对象

Java 使用文本中的不同变量创建新对象,java,arraylist,Java,Arraylist,我正在做家庭作业,被卡住了 跑步者名单应在末尾显示跑步者的姓名以及他们所在的年龄组,如初级、高级等 我刚刚被难倒在如何在年龄组被分类到等级后获得值上,任何小的指针都会被感激的。如果有帮助的话,使用BlueJ import java.util.*; import java.io.*; import ou.*; /** * Write a description of class MarathonAdmin here. * * @author (your name) * @version

我正在做家庭作业,被卡住了

跑步者名单应在末尾显示跑步者的姓名以及他们所在的年龄组,如初级、高级等

我刚刚被难倒在如何在年龄组被分类到等级后获得值上,任何小的指针都会被感激的。如果有帮助的话,使用BlueJ

import java.util.*;
import java.io.*;
import ou.*;

/**
 * Write a description of class MarathonAdmin here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class MarathonAdmin
{
    // instance variables - replace the example below with your own

    private Runner runners;
    List<String> runner = new ArrayList<String>();

    /**
     * Constructor for objects of class MarathonAdmin
     */
    public MarathonAdmin()
    {
        // initialise instance variables
        List<String> runner = new ArrayList<String>();

    }

    /**
     * An example of a method - replace this comment with your own
     *
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y 
     */
    public void readInRunners()
    {
        // put your code here
        String pathName = OUFileChooser.getFilename();
        File aFile = new File(pathName);
        BufferedReader bufferedFileReader = null;

        try
        {
            String runnerLine;
            String ageGroup;
            Scanner runScanner;
            bufferedFileReader = new BufferedReader(new FileReader(aFile));
            runnerLine = bufferedFileReader.readLine();

            while(runnerLine != null)
            {
                runScanner = new Scanner(runnerLine);
                runScanner.useDelimiter(",");

                runnerLine = runScanner.next();
                ageGroup = runScanner.next();

                for (String run : runner)

                    if (Integer.parseInt(ageGroup) < 18)
                    {
                        System.out.println(runnerLine + " : Junior");
                    }
                if (Integer.parseInt(ageGroup) > 55)
                {
                    System.out.println(runnerLine + " : Senior");
                }
                if (Integer.parseInt(ageGroup) > 18 && Integer.parseInt(ageGroup) < 55)
                {
                    System.out.println(runnerLine + " : Standard");
                }

                this.runners = new Runner();
                runner.add(runnerLine);
                runner.add(ageGroup);

                runnerLine = bufferedFileReader.readLine();
            }
        }
        catch (Exception anExpection)
        {
            System.out.println("Error: " + anExpection);
        }
        finally
        {
            try
            {
                bufferedFileReader.close();
            }
            catch(Exception anException)
            {
                System.out.println("Error: " + anException);
            }
        }
    }

}

如果我正确理解你的问题,这是解决问题的一种方法:

HashMap<String, ArrayList<String>> ageGroups = new HashMap<String, ArrayList<String>>();
        ageGroups.put("Junior", new ArrayList<String>());
        ageGroups.put("Senior", new ArrayList<String>());
        ageGroups.put("Standard", new ArrayList<String>());

        for (String run : runner) {

            if (Integer.parseInt(ageGroup) < 18) {
                ageGroups.get("Junior").add(run);
                System.out.println(runnerLine + " : Junior");
            }
            if (Integer.parseInt(ageGroup) > 55) {
                System.out.println(runnerLine + " : Senior");
                ageGroups.get("Senior").add(run);

            }
            if (Integer.parseInt(ageGroup) > 18 && Integer.parseInt(ageGroup) < 55) {
                System.out.println(runnerLine + " : Standard");
                ageGroups.get("Standard").add(run);

            }

        }
稍后,要获得某一组的所有跑步者,您只需呼叫:

ArrayList<String> seniors = ageGroups.get("Senior")
我使用HasMap的原因是,您现在可以轻松处理所有跑步者类,特别是如果您添加更多的组/类


编辑:后来我发现这许多问题并不完全是你想要的,但我会留下它,因为它仍然会有帮助。

请始终用你正在使用的语言标记你的问题。