2015-06-23 10 views
6

का विरोध करने वाली वापसी सूची (कीसेट) मैं जावा 8 का उपयोग करने की कोशिश कर रहा हूं ताकि मुझे महत्वपूर्ण मूल्यों (इंटेगर्स) की सूची लौटा सकें जिसमें मूल्य (चेकबॉक्स) है जाँच की। जिस मानचित्र को मैं संसाधित करने का प्रयास कर रहा हूं वह निम्न रूप है।जावा 8 - सूची <Map.Entry <Integer, CheckBox >>

Map<Integer, CheckBox> 

लक्ष्य सभी मूल्यों के लिए कुंजी सेट वापस करना है जहां चेक बॉक्स मान चेक किया गया है।

अगर मैं निम्नलिखित

checkBoxes.entrySet().stream().filter(c -> c.getValue().getValue()) 
       .collect(Collectors.toList()); 

तो मैं वापस पाने के लिए एक List<Map.Entry<Integer, CheckBox>> वहाँ वैसे भी है Map.Entry मूल्यों प्रसंस्करण तो मैं बस पूर्णांकों की एक सूची प्राप्त कर सकते हैं बिना एक पंक्ति में सभी यह करने के लिए?

धन्यवाद

उत्तर

8

आप एंट्री से कुंजी को निकालने के लिए एक map कॉल जोड़ सकते हैं:

List<Integer> keys = checkBoxes.entrySet().stream() 
      .filter(c -> c.getValue().getValue()) 
      .map(Map.Entry::getKey) 
      .collect(Collectors.toList()); 
+0

बिल्कुल सही - आपको बहुत बहुत धन्यवाद। ऐसा लगता है कि मुझे दूर जाने और इसे और कुछ सीखने की जरूरत है क्योंकि मुझे पता नहीं था कि किया जा सकता है। धन्यवाद – Biscuit128

संबंधित मुद्दे