来自ArrayList的int用于另一个类

时间:2016-04-29 23:12:13

标签: java arraylist bluej

我要做的是制作一些可以用来计划一年中工作量的东西。我正在编写一个程序,我手动输入我的班级名称,页面数量和班级难度。

我正在处理一个类,其中我放入了我之前命名的所有数据以及另一个负责计算工作的类。

包含大学课程信息的Java类:

    public classInfo(String className, int classAmount, int classDifficulty, int classTime)
    {
        name = className; // name of the class
        amount = classAmount; // amount of pages
        difficulty = classDifficulty; // difficulty (1 = easy >> 3 = hard)
        time = classTime; // time you have (1 or 2 semesters)
    }

    /**
     * Prints all the data you have put in about this class
     */
    public void printInfo()
    {
        System.out.println("Vak: " + name);
        System.out.println("Hoeveelheid leerstof: " + amount + " pagina's");
        System.out.println("Moeilijkheidsgraad: " + difficulty);
        System.out.println("Dit vak duurt: " + time + " semester(s)");
    }

    public String toString() 
    {
    return naam;
    }
}

我测试了这些方法,它们都像我期望的那样工作。最后一个方法(toString())是我创建的一个方法,这样我就可以打印我在第二个类的ArrayList中保存的所有类的列表。那个应该做计算的人。

以下是我的第二课的概述:(应该进行计算的那个)

import java.util.ArrayList;
public class Planner
{
    private ArrayList<ClassInfo> course;
    private int index;

    /**
     * constructor
     */
    public Planner()
    {
        course = new ArrayList<ClassInfo>();
    }

    /**
     * This method is used to add classes to the ArrayList
     */
    public void addClass(ClassInfo aCourse)
    {  
        course.add(aCourse);
    }

    /**
     * With this method you can print all the names of the classes that are currently in the ArrayList
     */
    public void showClass()
    {
        for(index = 0; index < course.size(); index++)
        {
            System.out.println(course.get(index));
        }
    }

    /**
     * This method is used to calculate the workload of the classes.
     */
    public void berekenKlas()
    {
       /////// HERE IS MY PROBLEM.   /////
    }
}

我想知道如何告诉Java我在ArrayList中保存的不同整数之间的区别。

我想要做的是遍历所有类(比如我遍历类名称的方法),并将“页数”和“时间”的数据保存到2个不同的变量中。

我目前所坚持的是我不知道该怎么做。有想法的人吗?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

首先,您可以为循环使用foreach构造:

public void showClass() {
    for(ClassInfo courseItem: course) {
        System.out.println(course);
    }
}

但我不明白你的问题。您已经在使用字段来分隔ArrayList的ClassInfo类型中的不同整数。

要保存这两个值,您可以创建另一个类,具体取决于您对这些值的处理方式。

答案 1 :(得分:0)

在您的ArrayList中,您有ClassInfo对象实例,而不是整数。 每个ClassInfo实例都包含名称,数量,难度,时间属性。

您可以使用以下方式访问属性。运营商。例如:

public void showClass() {
    for (ClassInfo classInfo:course) {
        System.out.println("Name of class:"+classInfo.name);
        System.out.println("Time needed:"+classInfo.time+" semesters");
        // and so on
    }
}

注意使用for-each循环(它就像10年以上的Java构造,请咨询您的导师或互联网)。我发现考虑使用标准缩进并遵守Java编码标准将使生活更轻松:)