[Java] मैं जावा 8 में सूची में सूची की सूची कैसे बदल सकता हूं?


Answers

flatmap बेहतर है लेकिन इसे प्राप्त करने के अन्य तरीके हैं

List<List<Object>> listOfList = ... // fill

List<Object> collect = listOfList.stream().collect(ArrayList::new, List::addAll, List::addAll);
Question

अगर मेरे पास एक List<List<Object>> , तो मैं इसे एक List<List<Object>> में कैसे बदल सकता हूं जिसमें जावा 8 की विशेषताओं का उपयोग करके समान ऑब्जेक्ट ऑर्डर में सभी ऑब्जेक्ट्स शामिल हैं?




मैं बस List<Documents> जैसे एक और परिदृश्य को समझाना चाहता हूं, इस सूची में अन्य दस्तावेज़ों की List<Excel> और कुछ सूची जैसे List<Excel> , List<Word> , List<PowerPoint> । तो संरचना है

Class A{
  List<Documents> documentList
}

Class Documents{
  List<Excel> excels
  List<Word> words
  List<PowerPoint> ppt
}

अब यदि आप एक्सेल को केवल दस्तावेज़ों से पुन: सक्रिय करना चाहते हैं तो नीचे कुछ ऐसा करें ..

तो कोड होगा

 List<Document> documentList = new A().getDocumentList();

 //check documentList as not null

 Optional<Excel> excelOptional = documentList.stream()
                         .map(doc -> doc.getExcel())
                         .flatMap(List::stream).findFirst();
 if(excelOptional.isPresent()){
   Excel exl = optionalExcel.get();
   // now get the value what you want.
 }

मुझे उम्मीद है कि कोडिंग करते समय यह किसी के मुद्दे को हल कर सकता है ..




Links