Java 调用长度和列表中列表的特定项

Java 调用长度和列表中列表的特定项,java,arrays,list,Java,Arrays,List,请查看我要描述的场景的图像 我想在列表中有一个列表,并知道该列表(内部)的大小以及如何从该列表中调用特定数据。 --还请包括如何将hobbyList添加到candidateList 假设我想为第二个候选对象调用hobbyList的大小,类似于候选列表(1).hobbyList.length()?或者.size() 如果我想说第二个候选人的第三个爱好的价值呢 候选名单(1)和霍布斯名单(2) 我不知道我是否已经清楚我想要什么,所以请不要犹豫问我 谢谢!:) 我不确定我是否完全理解你的问题 假设你

请查看我要描述的场景的图像

我想在列表中有一个列表,并知道该列表(内部)的大小以及如何从该列表中调用特定数据。 --还请包括如何将
hobbyList
添加到
candidateList

假设我想为第二个候选对象调用hobbyList的大小,类似于
候选列表(1).hobbyList.length()
?或者
.size()

如果我想说第二个候选人的第三个爱好的价值呢
候选名单(1)和霍布斯名单(2)

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


谢谢!:)

我不确定我是否完全理解你的问题

假设你有一个班级候选人和一个班级爱好:

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

    ...
}

public class Hobby {
    ...
}
第二名候选人的兴趣列表中的第三个兴趣是:

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();
    }
    ...
}

等等。

我不确定我是否完全理解你的问题

假设你有一个班级候选人和一个班级爱好:

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

    ...
}

public class Hobby {
    ...
}
第二名候选人的兴趣列表中的第三个兴趣是:

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();
    }
    ...
}

等等。

爱好课程

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
}
候选人班级

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
}
import java.util.List;
公开课候选人{
私有int-id;
私有字符串候选名称;
私人爱好清单;
公共候选人(int-id、String-candidateName、列出爱好){
this.id=id;
this.candidateName=candidateName;
这个。爱好=爱好;
}
//接球手和接球手
}
MainClassDemo具有main方法

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());
    }
}
import java.util.ArrayList;
导入java.util.List;
公共类MainClassDemo{
公共静态void main(字符串[]args){
嗜好c1Hb1=新嗜好(1,“板球”);
嗜好c1Hb2=新嗜好(2,“曲棍球”);
嗜好c1Hb3=新嗜好(3,“足球”);
List hobbies1=新建ArrayList();
业余爱好1.增加(c1Hb1);
业余爱好1.增加(c1Hb2);
爱好1.添加(c1Hb3);
候选人候选人1=新候选人(1,“安基特”,霍布斯1);
嗜好c2Hb1=新嗜好(4,“FB”);
嗜好c2Hb2=新嗜好(5,“TW”);
嗜好c2Hb3=新嗜好(6,“INSTA”);
嗜好c2Hb4=新嗜好(6,“兴趣”);
嗜好c2Hb5=新嗜好(6,“夸拉”);
List hobbies2=新建ArrayList();
业余爱好2.增加(c2Hb1);
业余爱好2.增加(c2Hb2);
业余爱好2.增加(c2Hb3);
业余爱好2.增加(c2Hb4);
业余爱好2.增加(c2Hb5);
候选人候选人2=新候选人(2,“普密斯”,霍布斯2);
List candidateList=新建ArrayList();
候选名单。添加(候选名单1);
候选名单。添加(候选名单2);
System.out.println(“候选数量:->”+candidateList.size());
System.out.println(“第一个候选人的爱好列表大小:->”+candidateList.get(0.getHobiods().size());
System.out.println(“第二个候选人的爱好列表大小:->”+candidateList.get(1.getHabiods().size());
System.out.println(“第一个候选人的第一个爱好:->”+candidateList.get(0.getHobiods().get(0.getHobiody());
System.out.println(“第二个候选人的第三个爱好:->”+candidateList.get(1.getHobiods().get(2.getHobiody());
}
}
输出

候选人数:->2人 第一个候选人的爱好列表大小:->3
第二名候选人的爱好列表大小:->5
第一名候选人的第一个爱好:->板球

第二名候选人的第三个爱好:->INSTA爱好课程

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
}
候选人班级

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
}
import java.util.List;
公开课候选人{
私有int-id;
私有字符串候选名称;
私人爱好清单;
公共候选人(int-id、String-candidateName、列出爱好){
this.id=id;
this.candidateName=candidateName;
这个。爱好=爱好;
}
//接球手和接球手
}
MainClassDemo具有main方法

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());
    }
}
import java.util.ArrayList;
导入java.util.List;
公共类MainClassDemo{
公共静态void main(字符串[]args){
嗜好c1Hb1=新嗜好(1,“板球”);
嗜好c1Hb2=新嗜好(2,“曲棍球”);
嗜好c1Hb3=新嗜好(3,“足球”);
List hobbies1=新建ArrayList();
业余爱好1.增加(c1Hb1);
业余爱好1.增加(c1Hb2);
爱好1.添加(c1Hb3);
候选人候选人1=新候选人(1,“安基特”,霍布斯1);
嗜好c2Hb1=新嗜好(4,“FB”);
嗜好c2Hb2=新嗜好(5,“TW”);
嗜好c2Hb3=新嗜好(6,“INSTA”);
嗜好c2Hb4=新嗜好(6,“兴趣”);
嗜好c2Hb5=新嗜好(6,“夸拉”);
List hobbies2=新建ArrayList();
业余爱好2.增加(c2Hb1);
业余爱好2.增加(c2Hb2);
业余爱好2.增加(c2Hb3);
业余爱好2.增加(c2Hb4);
业余爱好2.增加(c2Hb5);
候选人候选人2=新候选人(2,“普密斯”,霍布斯2);
List candidateList=新建ArrayList();
候选名单。添加(候选名单1);
候选名单。添加(候选名单2);
System.out.println(“候选数量:->”+candidateList.size());
System.out.println(“第一个候选人的爱好列表大小:->”+candidateList.get(0.getHobiods().size());
System.out.println(“第二个候选人的爱好列表大小:->”+candidateList.get(1.getHabiods().size());
System.out.println(“第一个候选人的第一个爱好:->”+candidateList.get(0.getHobiods().get(0.getHobiody());