Как перебирать List поверх List с помощью Stream API в Java 8?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как перебирать List поверх List с помощью Stream API в Java 8?

Сообщение Anonymous »

У меня есть два разных списка: первый — List, а второй — List.
List studentList = new ArrayList();
List moduleList = new ArrayList();

Как я могу перебирать modulList по StudentList, чтобы вы могли видеть, какой студент сдал какой модуль?
Изображение
class Student {

private String studentId;
private String name;
private Type gender;
private String studClass;
private String education;
private HashMap faillOrPass;

public Student()
{
faillOrPass = new HashMap();
}

public Student (String studentId, String name, Type gender, String studClass, String education)
{
faillOrPass = new HashMap();
setStudentId(studentId);
setName(name);
setGender(gender);
setStudClass(studClass);
setEducation(education);
}

public enum Type { MALE, FAML}

// getters and setters
// equals() and hashCode()
// toString()
}

class Module {

String modulecode;
int grade;
int year;

public Module(String code, int year) {
setModule(code);
setYear(year);
setGrade(-1);
}

// getters and setters
// equals and hashCode
// toString
}
public class TestClass {

final static Student st = new Student();
static String ZAYNUL = st.setVolledigeNaam("Zaynul Zaini");
static String PIPO = st.setVolledigeNaam("Pipo");
static String SANNY = st.setVolledigeNaam("Sanny Saniwich");
static String JOHAN = st.setVolledigeNaam("Johan Ginger");
static String DURSAH = st.setVolledigeNaam("Dursah Pikobillo");
static String ROMAN = st.setVolledigeNaam("Roman Romanawich");
static String TOM = st.setVolledigeNaam("Johonson");
static String ANDRE = st.setVolledigeNaam("Andersons");

public static List getModuleList() {
return List.of(

new Vak(ZAYNUL, "IT", 8, 2020),
new Vak(SANNY, "IT", 10, 2019),
new Vak(ROMAN, "IT", 9, 2018),
new Vak(MALIKA, "IT", 8, 2017),
new Vak(DURSAH,"IT", 10, 2016),
new Vak(PIPO,"IT", 10, 2020),

new Vak(PIPO,"IPC", 5, 2020),
new Vak(ZAYNUL,"IPC", 6, 2019),
new Vak(SANNY,"IPC", 4, 2018),
new Vak(ROMAN,"IPC", 1, 2017),
new Vak(MALIKA,"IPC", 5, 2016),
new Vak(DURSAH,"IPC", 4, 2020));
}

public static List getStudentList() {
List listVak = new ArrayList();
listVak.add(new Student("011", ZAYNUL, Student.Type.MALE, "first year", "Architecture"));
listVak.add(new Student("012", MALIKA, Student.Type.FEMALE, "second year", "economics"));
listVak.add(new Student("013", SANNY, Student.Type.FEMALE, "third year", "IT"));
listVak.add(new Student("014", ROMAN, Student.Type.MALE, "fourth year", "Astronomy"));
listVak.add(new Student("015", TOM, Student.Type.MALE, "second year", "economics"));
listVak.add(new Student("016", ANDRE, Student.Type.FEMALE, "third year", "IT"));
listVak.add(new Student("017", JOHAN, Student.Type.MALE, "fourth year", "Astronomy"));
return listVak;
}

public static void getPassedAndFaillModule(List listSt, List listVak) {

List filteredList = listSt.stream()
.filter(student -> listVak.stream()
.filter(md -> md.getCijfer() > 5)
.anyMatch(mdo -> mdo.getStudentName() !=null
&& student.getVolledigeNaam().equals(mdo.getStudentName())))
.collect(Collectors.toList());
filteredList.forEach(x -> System.out.println(x));

}

public static void main(String[] args) {
System.out.println("Print the result: ");
getPassedAndFaillModule(getStudentList(), getModuleList());
}
}

Это результат, который я получаю, но он не очень хорош:
Print the result:
StudentImpl{studentnummer='011', volledigeNaam='Zaynul Zaini', type='MALE', klaas='first year', studierichting='Architecture', vakkenLijst={}}
StudentImpl{studentnummer='012', volledigeNaam='Malika Ginger', type='FEMALE', klaas='second year', studierichting='economics', vakkenLijst={}}
StudentImpl{studentnummer='013', volledigeNaam='Sanny Saniwich', type='FEMALE', klaas='third year', studierichting='IT', vakkenLijst={}}
StudentImpl{studentnummer='014', volledigeNaam='Roman Romanawich', type='MALE', klaas='fourth year', studierichting='Astronomy', vakkenLijst={}}


Подробнее здесь: https://stackoverflow.com/questions/656 ... pi-in-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как сопоставить Page с Page в Spring Data 2?
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Является ли `[] (std :: list и list) {return std :: move (list);} (list)` гарантированно оставить `list` yelm?
    Anonymous » » в форуме C++
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Java 8 Stream - операции над операциями List> с повторяющимися идентификаторами списка
    Anonymous » » в форуме JAVA
    0 Ответы
    79 Просмотры
    Последнее сообщение Anonymous
  • Как я могу сгруппировать Stream в потоку >, а не на карту >?
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Какова связь между структурой данных Stream (java.util.stream) и LinkedList в Java?
    Anonymous » » в форуме JAVA
    0 Ответы
    60 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»