有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何打印带有子列表(课程)的类别。JAVA

我有两门课,一门课和一门课,它们有一个公共标识符int categoryId。每个类别都有一门课程。我想打印每个类别及其相关课程。category对象包含课程列表作为一个参数,所以当我打印出每个元素的类别时,课程的所有元素都会重复打印,而这些元素本不应该重复打印

public class Category {

private int categoryId;
private String name;
private String description;

private List<Course> courseList;

public Category(int categoryId, String name, String description,List<Course> courseList) {

    this.categoryId = categoryId;
    this.name = name;
    this.description = description;
    this.courseList = courseList;
}


public int getCategoryId() {
    return categoryId;
}

public void setCategoryId(int categoryId) {
    this.categoryId = categoryId;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public List<Course> getCourseList() {
    return courseList;
}

public void setCourseList(List<Course> courseList) {
    this.courseList = courseList;
}

@Override
public String toString() {
    return "Category{" +
            "categoryId=" + categoryId +
            ", name='" + name + '\'' +
            ", description='" + description + '\'' +
            ", courseList=" + courseList +
            '}';
}

}

public class Course {

private int courseId;
private int categoryId;
private String name;
private int duration;
private int miles;
  
public int getCourseId() {
    return courseId;
}

public void setCourseId(int courseId) {
    this.courseId = courseId;
}

public int getCategoryId() {
    return categoryId;
}

public void setCategoryId(int categoryId) {
    this.categoryId = categoryId;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getDuration() {
    return duration;
}

public void setDuration(int duration) {
    this.duration = duration;
}

public int getMiles() {
    return miles;
}

public void setMiles(int miles) {
    this.miles = miles;
}

@Override
public String toString() {
    return "Course{" +
            "courseId=" + courseId +
            ", categoryId=" + categoryId +
            ", name='" + name + '\'' +
            ", duration=" + duration +
            ", miles=" + miles + '}';
}

}

public class Main {

public static void main(String[] args){



    List<Course> courses = new ArrayList<>(Arrays.asList(
            new Course(2001, 1001, "Cloud Computing",180, 200),
            new Course(2002, 1002, "Web servers Computing",200, 250))
    );


   List<Category> categories = new ArrayList<>(Arrays.asList(
           new Category(1001, "AWS", "cloud courses", courses),
    new Category(1002, "LMS", "English courses", courses))
   );


  for(Category c : categories){
        for(Course cr: courses){
            if(c.getCategoryId() == cr.getCategoryId()){

                System.out.println(c);
            }

        }

    }

}

输出:

Category{categoryId=1001, name='AWS', description='cloud courses', courseList=[courseId=2001, name='Cloud Computing', duration=180, miles=200}, courseId=2002, name='Web servers Computing', duration=200, miles=250}]} Category{categoryId=1002, name='LMS', description='engish courses', courseList=[courseId=2001, name='Cloud Computing', duration=180, miles=200}, courseId=2002, name='Web servers Computing', duration=200, miles=250}]}


共 (0) 个答案