JAVA ArrayList类调用另一个类

时间:2016-03-06 21:28:59

标签: java arraylist call

我是初学者,请原谅我这个简单的问题。

我有一个日记课程,有2个课程,日记和工作。

日记是主要的课程,我需要打电话给Job做这项工作。

以下是两个类的代码。 Class Job本身工作正常,我有问题叫班级Job做工作并返回。

课程作业添加3个字段。

如何从Diary调用Job并返回存储在ArrayList中的结果。

import java.util.ArrayList;

public class Diary {
     ArrayList<Job> jobs;
     String jobName, jobDay, jobPriority;


    public Diary() {
       jobs = new ArrayList<Job>();
    }
}

public class Job {

    public Job(String jobName, String jobDay, String jobPriority) {
        name = jobName;
        day = jobDay;
        priority = jobPriority;
    }

    /**
     * return the varaibles
     */
    public String getName() {
        return name;
    }

    public String getDay() {
        return day;
    }

    public String getPriority() {
        return priority;
    }

    // print the job details
    public String getJob() {
        return name + " on a " + day + " this week and its priority is " + priority;
    }
}

感谢那些帮助解决它的人。

我的后续问题是我尝试打印了ArrayList的内容但没有成功。我使用了以下内容,但他们不断给我内存位置的地址而不是内容。我使用过类似的东西,但似乎没什么用。

public void addJob(String jobName, String jobDay, String jobPriority)
{
 System.out.println( Arrays.toString(jobs)); 
 System.out.println(jobs.get(0));
 System.out.println(jobs.toString().replaceAll("\[\]", ""));         
 System.out.println(jobs.toString(jobs));
 System.out.println(""+jobs.get(0).jobName);
}

任何想法。

3 个答案:

答案 0 :(得分:0)

您正在创建两个作业列表 - 一个用于整个对象,另一个仅在构造函数中。另外,让我们重命名你的清单:

import java.util.ArrayList;

public class Diary {

    ArrayList<Job> jobs;

    public Diary() {
        jobs = new ArrayList<Job>();
    }
}

现在,您需要在列表中添加一些作业:

public Diary() {
    jobs = new ArrayList<Job>();

    jobs.add(new Job("Do something", "Monday", "HIGH"));
    jobs.add(new Job("Do something else", "Tuesday", "MED"));
}

然后,您可能希望列出作业:

public class Diary {

    ...

    public void printJobs {
        for(Job job : jobs) {
            System.out.println(job.getJob());
    }
}

答案 1 :(得分:0)

opengl

没有做任何事情,名字onejob令人困惑。我推荐工作。

创建作业,然后将其添加到已经制作的arraylist作业中。

ArrayList<Job> jobs= new ArrayList<Job>() 

答案 2 :(得分:0)

你需要记住的第一件事是Arraylist是一个对象,它的条目也是如此,所以除非它们有toString方法覆盖,否则你不能只是去除那些对象。

假设你从日记里面调用addJob,你实际上并没有对你传递的信息做任何事情。您需要创建一个作业并将其添加到您的arraylist。

public void addJob(String jobName, String jobDay, String jobPriority) {
    Job job = new Job(jobName, jobDay, jobPriority);
    jobs.add(job);
}

然后我将创建一个新方法来获取所有作业并使用已创建作业类insode的getJob方法列出它们。

public void listJobs(){
    for(job : jobs) {
        System.out.println(job.getJob());
    }
}

有意义吗?