如何打印带有子列表(课程)的类别。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) 个答案