मुझे यह हल करने में समस्या है कि मुझे एनएच कर्मचारी कहां मिलना चाहिए जिसका लिंग जावा 8 धाराओं का उपयोग करने वाले कर्मचारियों की सूची से पुरुष है, अगर कुछ भी वैकल्पिक खाली नहीं मिला।

class Employee{
   private int id;
   private String name;
   private String gender;
   
  //getters and setters
}

नीचे वह तरीका है जो कर्मचारी वस्तुओं और पूर्णांक n की एक सूची को स्वीकार करता है जहां n n वें पुरुष कर्मचारी को दर्शाता है जिसे मौजूद होने पर वापस करना होगा।

Optional<Employee> nthMaleEmployee(List<Employee> employees, int n){

}

जावा 8 स्ट्रीम और कलेक्ट विधि का उपयोग करके प्रश्न के लिए मेरा समाधान नीचे दिया गया है।

return employees.stream().filter((e)-> e.getGender().equalsIgnoreCase("male")).collect(Collectors.toList()).get(n-1);

क्या संग्रह विधि का उपयोग नहीं करने वाली धाराओं के साथ कोई समाधान है? मेरी समस्या कथन संग्रह विधि का उपयोग किए बिना धाराओं का उपयोग करना है।

1
MOHAMMED SHAMAS 20 अक्टूबर 2020, 23:20

2 जवाब

सबसे बढ़िया उत्तर

सूची में तत्वों को छोड़ने के लिए विधि को छोड़ें (n-1) का उपयोग करें और findFirst विधि आपको nth तत्व देगी।

1
Patrick 20 अक्टूबर 2020, 20:28

आप एक skip का उपयोग findAny के साथ कर सकते हैं

employees.stream().skip(n)
   .filter((e)-> e.getGender().equalsIgnoreCase("male"))
   .findAny()
0
Sleiman Jneidi 20 अक्टूबर 2020, 20:29