public class HomeroomMix {
public void calculate(String className, int number) {
List<PeopleClass> people = Arrays.asList(
new PeopleClass("DE", "male"),
new PeopleClass("DE", "female"),
new PeopleClass("DE", "n/a"),
new PeopleClass("UK", "female"),
new PeopleClass("UK", "female"),
new PeopleClass("UK", "female"),
new PeopleClass("JP", "trans"),
new PeopleClass("JP", "male")
);
int number_of_groups = number;
Function<PeopleClass, String> discriminator = PeopleClass::getGender;
AtomicInteger index = new AtomicInteger();
List<List<PeopleClass>> groups = new ArrayList<>(people.stream()
.sorted(Comparator.comparing(discriminator))
.collect(Collectors.groupingBy(e -> index.getAndIncrement() % number_of_groups))
.values());
groups.forEach(System.out::println);
}
это мой класс людей
public PeopleClass(String nationality, String gender) {
this.gender = gender;
this.nationality = nationality;
}
public String getNationality() {
return nationality;
}
public void setNationality(String nationality) {
this.nationality = nationality;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHomeRoom() {
return homeRoom;
}
public void setHomeRoom(String homeRoom) {
this.homeRoom = homeRoom;
}
@Override
public String toString() {
return name;
}
}
Я пытаюсь сгруппировать людей по предпочтениям, и я изначально запрограммировал это на greenfoot, и это сработало отлично. Однако недавно я хотел внедрить это в проект в intellij, с javafx. Когда я тестировал, система выводила ноль. Хотя я также планирую l oop список объектов вместо добавления каждого в список - я пробовал это, и он продолжал посылать нули.
[null, null, null]
[null, null, null]
[null, null]
Я хочу напечатать что-то вроде
[person1, person3, person 6]
[person 5, person 2, person 4]
[person 7, person 8]