Mam ArrayList<Integer>
. Chcę sprawdzić, czy wszystkie elementy listy są większe lub mniejsze niż określony warunek. Mogę to zrobić przez powtarzanie każdego elementu. Ale chcę wiedzieć, czy istnieje jakakolwiek metoda w klasie Collection, aby uzyskać odpowiedź, tak jak możemy zrobić, aby znaleźć maksymalne lub minimalne z odpowiednio Collections.max()
i Collections.min()
.jak sprawdzić, czy wszystkie elementy kolekcji java pasują do jakiegoś warunku?
12
A
Odpowiedz
25
Jeśli masz java 8, allMatch
funkcji Użyj Stream (reference):
ArrayList<Integer> col = ...;
col.stream().allMatch(i -> i>0); //for example all integers bigger than zero
1
Nie można sprawdzić wartości bez powtarzanie wszystkich elementów listy.
for(Integer value : myArrayList){
if(value > MY_MIN_VALUE){
// do my job
}
}
Mam nadzieję, że to pomoże
+0
Chcę wykonać moją pracę tylko, jeśli wszystkie elementy listy> mojego stanu – Chirag
5
Można użyć Google guavas Iterables.all
Iterables.all(collection, new Predicate() {
boolean apply(T element) {
.... //check your condition
}
}
Jeśli się nie mylę, Collections.max() i Collections.min() również iterację każdy element. –
'max' i' min' nie mają sensu per se, ponieważ 'Collection' jest typem ogólnym. na przykład, jeśli masz 'Collection