Hej. Mam w ArrayList studentów. Każdy student ma swoje id i też zmienną double marksAvg
. Jak najlepiej wylosować studenta spośród tych, którzy mają np. średnią ocen marksAvg > 3.22
? W C do takich rzeczy korzystałam z dodatkowej tablicy przechowującej id obiektów, z których mogę losować ale w Javie chyba można prościej?
0
0
Ja bym użył filter z Guavy:
http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Collections2.html#filter(java.util.Collection, com.google.common.base.Predicate)
i losował z kolekcji którą ci zwróci.
2
Uzyj nowego streaming api z javy 8.
2
n0name_l napisał(a):
Uzyj nowego streaming api z javy 8.
Faktycznie, jeśli możesz użyć javy 8 to warto skorzystać z filter() wbudowanego teraz w standard języka:
List<Student> filteredStudents = students.stream().filter(student->student.getMarksAvg()>3.22).collect(Collectors.toList());