import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Author: Be.insighted
* Description:
*
* @date 2019/10/16 15:08
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student {
private String name;
}
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* Author: Be.insighted
* Description:
*
* @date 2019/10/16 15:21
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class Teacher {
private String name;
private List<Student> students;
}
import org.springframework.util.CollectionUtils;
import java.util.*;
/**
* Author: Be.insighted
* Description:
*
* @date 2019/10/16 15:09
**/
public class TestMain {
public static void main(String[] args) {
List<Student> sList1 = new ArrayList<>();
List<Student> sList2 = new ArrayList<>();
Student s1 = new Student("奥巴驴");
Student s2 = new Student("川普");
Student s3 = new Student("普京");
sList1.add(s1);
sList1.add(s2);
sList1.add(s3);
sList2.addAll(sList1.subList(1, sList1.size()));
List<Teacher> tList1 = new ArrayList<>();
Teacher t1 = new Teacher("世界", sList1);
Teacher t2 = new Teacher("中国", sList2);
tList1.add(t1);
tList1.add(t2);
Map<String, List<String>> stuToteacherMap = new HashMap<>();
System.out.println("Student1 are:" + sList1);
System.out.println("Student2 are:" + sList2);
System.out.println("Teacher and teacher's students are " + tList1);
for (Teacher te : tList1) {
List<Student> stus = te.getStudents();
for (Student student : stus) {
List<String> tech = new ArrayList<>();
Set<String> keySet = stuToteacherMap.keySet();
if (CollectionUtils.isEmpty(keySet)) {
tech.add(te.getName());
stuToteacherMap.put(student.getName(), tech);
}
if (keySet.contains(student.getName())) {
if (!tech.contains(te.getName())) {
tech = stuToteacherMap.get(student.getName());
tech.add(te.getName());
stuToteacherMap.put(student.getName(), tech);
}
} else {
tech.add(te.getName());
stuToteacherMap.put(student.getName(), tech);
}
}
}
System.out.println("每个学生对应的老师集合:" + stuToteacherMap);
}
}
实验结果:
期待结果:
{[中国=[川普, 普京], 世界=[川普, 普京,奥巴驴]}
{普京=[世界, 中国], 川普=[世界, 中国], 奥巴驴=[世界]}