为什么我的代码不显示这2个Arraylist?

问题描述:

我需要显示一个ArrayList,列出一个人可能拥有的大学学位。为什么我的代码不显示这2个Arraylist?

在另一个ArrayList中,我需要显示符合公司要求的大学学位要求的个人列表。

在循环内尝试了一个system.out,它甚至没有访问for循环。

* 2种方法与for循环在这个类

import java.util.ArrayList; 

public class RecruitingCompany { 


private String companyName; 
private int phoneNumber; 
private String address; 
private ArrayList<CollegeDegree> collegeDegreeList = new ArrayList<>(); 
private ArrayList<Candidate> candidateList = new ArrayList<>(); 

private Candidate candidate; 
private Requirement academicDegree; 

public RecruitingCompany(){ 
    /*main constructor*/ 
} 


public RecruitingCompany(String companyName, int phoneNumber, String address){ 
    this.companyName = companyName; 
    this.phoneNumber = phoneNumber; 
    this.address = address; 
} 

public String getCompanyName() { 
    return companyName; 
} 

public void setCompanyName(String companyName) { 
    this.companyName = companyName; 
} 

public int getPhoneNumber() { 
    return phoneNumber; 
} 

public void setPhoneNumber(int phoneNumber) { 
    this.phoneNumber = phoneNumber; 
} 

public String getAddress() { 
    return address; 
} 

public void setAddress(String address) { 
    this.address = address; 
} 

public ArrayList<CollegeDegree> getCollegeDegreeList() { 
    return collegeDegreeList; 
} 

public void setCollegeDegreeList(ArrayList<CollegeDegree> collegeDegreeList) { 
    this.collegeDegreeList = collegeDegreeList; 
} 

public ArrayList<Candidate> getCandidateList() { 
    return candidateList; 
} 

public void setCandidateList(ArrayList<Candidate> candidateList) { 
    this.candidateList = candidateList; 
} 

public Candidate getCandidate() { 
    return candidate; 
} 

public void setCandidate(Candidate candidate) { 
    this.candidate = candidate; 
} 

public Requirement getAcademicDegree() { 
    return academicDegree; 
} 

public void setAcademicDegree(Requirement academicDegree) { 
    this.academicDegree = academicDegree; 
} 

public String showCandidateCollegeDegrees(){ 
    String degree = "Candidato: " + candidate.getName() + "\n"; 

    for (CollegeDegree cd: this.collegeDegreeList){ 
     degree += cd.toString(); 
    } 
    return degree; 
} 

public String selectByCollegeDegree(){ 
    String person = "Título: " + academicDegree.getDegree() + "\n"; 

    for (Candidate c: this.candidateList){ 
      person += c.toString(); 
    } 
    return person; 
} 

} 

的Tester类

public class Tester { 

public static void main(String[] args) { 

    AvailableJob availableJob = new AvailableJob(2005, 2011, "Contador", 444464444, "Metalco", "del poste de luz, 50m oeste", 550.000); 
    Candidate candidate = new Candidate("Asdrubal", 888888888, "[email protected]", "Bachillerato"); 
    CollegeDegree collegeDegree = new CollegeDegree("Bachillerato Administracion", 2003, "Universidad Aguila Calva"); 
    RecruitingCompany recruitingCo = new RecruitingCompany(); 
    Requirement requirement = new Requirement("Bachillerato", 4); 

    recruitingCo.setCandidate(candidate); 
    recruitingCo.setAcademicDegree(requirement); 
    availableJob.setRequirement(requirement); 

    System.out.println(recruitingCo.showCandidateCollegeDegrees()); 
    System.out.println(); 
    System.out.println(recruitingCo.selectByCollegeDegree()); 
    System.out.println(); 
    System.out.println(availableJob.showRequirement()); 

    //System.out.print(recruitingCo.getCandidateList()); 
} 

} 
+4

你从不向这些'ArrayList'添加任何东西。 – resueman

+0

如何?我将它们添加到测试仪中。 – lingote

+1

你正在设置'candidate'和'academicDegree'字段,但是那些不会修改'List'。如果你想,你需要在列表中调用'add'方法(例如,在你的'setCandidate'方法内部)。 – resueman

您没有添加新的候选人或程度的的ArrayList。更改以下方法,将工作,

public void setAcademicDegree(Requirement academicDegree) { 
    this.academicDegree = academicDegree; 
    collegeDegreeList.add(academicDegree); 
} 

public void setCandidate(Candidate candidate) { 
    this.candidate = candidate; 
    candidateList.add(candidate); 
} 

现在,当您设置一个新的候选对象或对象CollegeDegree将被自动添加到列表中。

+0

是的,这工作。正如resueman在另一篇文章中所说的那样,我没有给列表添加任何内容。我做了一些其他的改变,使一切工作,但这个职位让我走上正轨。谢谢 – lingote

+0

没问题,谢谢你的确认虽然... :) –

在你的代码的最后,你需要做一些改变:

  1. setCollegeDegreeList()setCandidateList()setCandidate()方法 应该是CH anged到addCollegDegree()addCandidate()
  2. recruitingCo.setCandidate(candidate)应更换到 recruitingCo.addCandidate(candidate);
  3. 需要添加在主recruitingCo.addCollegeDegree(collegeDegree);();

,你可以得到下面的代码:

import java.util.ArrayList; 

public class RecruitingCompany { 


private String companyName; 
private int phoneNumber; 
private String address; 
private ArrayList<CollegeDegree> collegeDegreeList = new ArrayList<>(); 
private ArrayList<Candidate> candidateList = new ArrayList<>(); 
private Requirement academicDegree; 

public RecruitingCompany(){ 
    /*main constructor*/ 
} 


public RecruitingCompany(String companyName, int phoneNumber, String address){ 
    this.companyName = companyName; 
    this.phoneNumber = phoneNumber; 
    this.address = address; 
} 

public String getCompanyName() { 
    return companyName; 
} 

public void setCompanyName(String companyName) { 
    this.companyName = companyName; 
} 

public int getPhoneNumber() { 
    return phoneNumber; 
} 

public void setPhoneNumber(int phoneNumber) { 
    this.phoneNumber = phoneNumber; 
} 

public String getAddress() { 
    return address; 
} 

public void setAddress(String address) { 
    this.address = address; 
} 

public ArrayList<CollegeDegree> getCollegeDegreeList() { 
    return collegeDegreeList; 
} 

public ArrayList<Candidate> getCandidateList() { 
    return candidateList; 
} 

public void addCollegeDegree(CollegeDegree collegeDegree) { 
    this.collegeDegreeList.add(collegeDegree); 
} 

public void addCandidate(Candidate candidate) { 
    this.candidateList.add(candidate); 
} 

public Requirement getAcademicDegree() { 
    return academicDegree; 
} 

public void setAcademicDegree(Requirement academicDegree) { 
    this.academicDegree = academicDegree; 
} 

public String showCandidateCollegeDegrees(){ 
    String degree = "Candidato: " + candidate.getName() + "\n"; 

    for (CollegeDegree cd: this.collegeDegreeList){ 
     degree += cd.toString(); 
    } 
    return degree; 
} 

public String selectByCollegeDegree(){ 
    String person = "Título: " + academicDegree.getDegree() + "\n"; 

    for (Candidate c: this.candidateList){ 
      person += c.toString(); 
    } 
    return person; 
} 

} 

测试仪:

public class Tester { 

public static void main(String[] args) { 

    AvailableJob availableJob = new AvailableJob(2005, 2011, "Contador", 444464444, "Metalco", "del poste de luz, 50m oeste", 550.000); 
    Candidate candidate = new Candidate("Asdrubal", 888888888, "[email protected]", "Bachillerato"); 
    CollegeDegree collegeDegree = new CollegeDegree("Bachillerato Administracion", 2003, "Universidad Aguila Calva"); 
    RecruitingCompany recruitingCo = new RecruitingCompany(); 
    Requirement requirement = new Requirement("Bachillerato", 4); 

    recruitingCo.addCandidate(candidate); 
    recruitingCo.addСollegeDegree(collegeDegree); 

    recruitingCo.setAcademicDegree(requirement); 
    availableJob.setRequirement(requirement); 

    System.out.println(recruitingCo.showCandidateCollegeDegrees()); 
    System.out.println(); 
    System.out.println(recruitingCo.selectByCollegeDegree()); 
    System.out.println(); 
    System.out.println(availableJob.showRequirement()); 

    //System.out.print(recruitingCo.getCandidateList()); 
} 

} 
+2

代码转储答案没有用,因为它不清楚你实际改变了什么。请描述更改内容。另外,复制你没有改变的代码是很有用的 - 如果它不是问题的一部分,不要将它作为答案的一部分。 –

+0

我已经修好了 –

+0

他在测试仪类中增加了2行。 – lingote