Ваш код неверен.
Первое: если вашему конструктору требуется параметр String[]
, вы должны указать String[]
, а не String
. Назовите это так:
Student sa = new Student("John", new String[]{"math", "physics"});
Student sb = new Student("Jack", new String[]{"math", "english"});
Student sc = new Student("Maria", new String[]{"math", "chemistry"});
Вы должны сделать ваши поля приватными и использовать геттеры вместо того, чтобы делать их закрытыми. Вы можете прочитать о видимости здесь
Теперь у вас есть три Student
объекта. Вы не можете поместить их в поток самым простым способом, как это:
Arrays.stream(new Student[]{sa, sb, sc})
Теперь вы можете фильтровать поток примерно так:
Arrays.stream(new Student[]{sa, sb, sc})
.filter(s -> {
for(String className : s.classes) {
if(className.equals("math")) return true;
}
return false;
})
, который даст вам поток всех учеников, которые имеют класс math
в своем поле classes
. Теперь вы можете собирать свои элементы или больше работать с ним.