2017-08-10 89 views
0

请查看图像以了解我想描述的情况。呼叫长度和列表中的特定项目清单

Please view image for the scenario I want to describe

我想有一个列表中的列表,并知道什么是该列表(内部)和如何调用从该列表中的特定数据的大小。 - 兼论请包括如何添加hobbyListcandidateList

所以我们可以说我要打电话hobbyList的尺寸为2号候选人像<code>CandidateList(1).HobbyList.length()</code>?或.size()

如果我想打电话给第二个候选人的第三个爱好的价值 CandidateList(1).HobbyList(2)

我不知道我是否已经清楚自己想要什么,所以请不要犹豫,问我。

谢谢! :)

+1

如果你正在使用列表,使用'list.get(i)'得到'i''th元素和'list.size()'来获得'List'的大小。 – Eran

+0

我不明白你的问题。 'CandidateList.get(1).HobbyList.size()'会给出第二个候选人爱好列表的大小,而'CandidateList.get(1).HobbyList.get(2)'会在爱好列表中获得第三个爱好的第二候选人。 –

回答

0

我不知道我完全理解你的问题。

假设你有一个类考生和一流的业余爱好:

public class Candidate { 
    public final List<Hobby> hobbyList = new ArrayList<>(); 

    ... 
} 

public class Hobby { 
    ... 
} 

和候选人的名单:

List<Candidate> candidateList; 

你会通过获得该列表中的第二个候选的爱好数量用下面的表达式打电话:

candidateList.get(1).hobbyList.size() 

你会得到第三个爱好ho与第二候选BBY列表:

candidateList.get(1).hobbyList.get(2) 

的爱好添加到第二个候选人,你会怎么做:

candidateList.get(1).hobbyList.add(hobby); 

现在我想封装类的领域,至少当他们可以修改的,所以我会做hobbyList私有,并加入了一些方法:

public class Candidate { 
    private final List<Hobby> hobbyList = new ArrayList<>(); 

    public int getHobbyCount() { 
     return hobbyList.size(); 
    } 

    public Hobby getHobby(int i) { 
     return hobbyList.get(i); 
    } 

    public List<Hobby> getHobbies() { 
     return new ArrayList<>(hobbyList); 
    } 

    public void addHobby(Hobby hobby) { 
     hobbyList.add(hobby); 
    } 

    public void removeHobby(Hobby hobby) { 
     hobbyList.remove(hobby); 
    } 

    public void removeAllHobbies() { 
     hobbyList.clear(); 
    } 
    ... 
} 

所以你现在可以写的东西,如:

candidateList.get(1).getHobbyCount(); 
candidateList.get(1).getHobby(2); 
candidateList.get(1).add(hobby); 

etc ...

2

业余爱好

public class Hobby { 
    private int id; 
    private String hobby; 

    public Hobby(int id, String hobby) { 
     this.id = id; 
     this.hobby = hobby; 
    } 
    // Getters and setters 
} 

候选

import java.util.List; 
public class Candidate { 
    private int id; 
    private String candidateName; 
    private List<Hobby> hobbies; 

    public Candidate(int id, String candidateName, List<Hobby> hobbies) { 
     this.id = id; 
     this.candidateName = candidateName; 
     this.hobbies = hobbies; 
    } 
    // Getters and setters 
} 

MainClassDemo具有主要方法

import java.util.ArrayList; 
import java.util.List; 
public class MainClassDemo { 
    public static void main(String[] args) { 
     Hobby c1Hb1 = new Hobby(1, "Cricket"); 
     Hobby c1Hb2 = new Hobby(2, "Hockey"); 
     Hobby c1Hb3 = new Hobby(3, "Football"); 
     List<Hobby> hobbies1 = new ArrayList<Hobby>(); 
     hobbies1.add(c1Hb1); 
     hobbies1.add(c1Hb2); 
     hobbies1.add(c1Hb3); 
     Candidate candidate1 = new Candidate(1, "Ankit", hobbies1); 

     Hobby c2Hb1 = new Hobby(4, "FB"); 
     Hobby c2Hb2 = new Hobby(5, "TW"); 
     Hobby c2Hb3 = new Hobby(6, "INSTA"); 
     Hobby c2Hb4 = new Hobby(6, "Pininterest"); 
     Hobby c2Hb5 = new Hobby(6, "Quara"); 
     List<Hobby> hobbies2 = new ArrayList<Hobby>(); 
     hobbies2.add(c2Hb1); 
     hobbies2.add(c2Hb2); 
     hobbies2.add(c2Hb3); 
     hobbies2.add(c2Hb4); 
     hobbies2.add(c2Hb5); 
     Candidate candidate2 = new Candidate(2, "Bhumi", hobbies2); 

     List<Candidate> candidateList = new ArrayList<Candidate>(); 
     candidateList.add(candidate1); 
     candidateList.add(candidate2); 

     System.out.println("No of Candidates:->" + candidateList.size()); 
     System.out.println("Hobby list size for the 1st Candidate:->" + candidateList.get(0).getHobbies().size()); 
     System.out.println("Hobby list size for the 2nd Candidate:->" + candidateList.get(1).getHobbies().size()); 

     System.out.println("1st Hobby of 1st Candidate:->" + candidateList.get(0).getHobbies().get(0).getHobby()); 
     System.out.println("3rd Hobby of 2nd Candidate:->" + candidateList.get(1).getHobbies().get(2).getHobby()); 
    } 
} 

输出

否考生的: - >
业余爱好列表大小为第一候选: - >
业余爱好列表大小为第二候选: - >
第一第一候选的业余爱好: - >板球
第二候选人的第三业余爱好: - >章安