2014-06-19 12 views
12

ArrayList<Integer> var. Listenin tüm öğelerinin belirli koşullardan sonra mı yoksa daha az mı olduğunu kontrol etmek istiyorum. Her eleman üzerinde yineleyerek yapabilirim. Ama toplama sınıfında, Collections.max() ve Collections.min() ile maksimum veya minimum bulmak için yapabileceğimiz gibi bir cevap almak için herhangi bir yöntem olup olmadığını bilmek istiyorum.java koleksiyonunun tüm öğelerinin bazı koşullarla eşleşip eşleşmediğini nasıl kontrol edersiniz?

+0

kullanabilirsiniz Collections.max() ve Collections.min (yardımcı olacağını umuyoruz öğesi. –

+0

'max' ve' min' hiçbir anlam ifade etmemektedir, çünkü 'Collection' genel bir türdür. örneğin Koleksiyon 'varsa," max "ve" min "ne olurdu? Burada bir göz atın: http://stackoverflow.com/questions/122105/what-is-the-best-way-to-filter-a-java-collection – logoff

cevap

25

java 8, kullanım streamin allMatch fonksiyonu (reference) varsa:

ArrayList<Integer> col = ...; 
col.stream().allMatch(i -> i>0); //for example all integers bigger than zero 
+0

Bu konuda bilmiyordum, yararlı görünüyor! : D –

+0

çok yararlı.kendime yeni bir şey ... Teşekkürler – Chirag

+0

Bu yüklemeyi nasıl kullanacağımı ve argümana aktarmıyorum. Herkes bana demo verebilir mi? – Chirag

1

Sen listesinin tüm unsurları yineleme olmadan değerlerini kontrol edemez.

for(Integer value : myArrayList){ 

    if(value > MY_MIN_VALUE){ 
     // do my job 
    } 
} 

Bu aynı zamanda her yinelemenize), ben yanlış olmazsam

+0

İşimi sadece listenin tüm öğeleri> durumumda yapmak istiyorum – Chirag

5

Google guavaları Iterables.all

Iterables.all(collection, new Predicate() { 
    boolean apply(T element) { 
     .... //check your condition 
    } 
} 
İlgili konular