जावा - वस्तुओं की सूची से शून्य निकालें [डुप्लिकेट]

Nov 19 2020

मेरे पास एक विशाल आकार की जावा सूची वस्तु इस प्रकार है:

List<Object[]> res = // repo method that will return query result

मुझे रेस ऑब्जेक्ट से नल हटाने होंगे।

मैंने अभी तक नीचे के तरीकों की कोशिश की लेकिन कुछ भी काम नहीं आया:

1. res.remove(null);
2. res.removeAll(Collections.singleton(null));
3. res.removeAll(null);
4. while(res.remove(null));

मैं कुशलतापूर्वक नल कैसे निकाल सकता हूं क्योंकि सूची का आकार बहुत बड़ा होने वाला है?

जवाब

6 NikolasCharalambidis Nov 19 2020 at 17:48

परस्पर सूची

आप List::removeIfएक विधेय का पता लगाने वाली nullवस्तुओं के साथ उपयोग कर सकते हैं ।

List<Object[]> mutableList = new ArrayList<>(Arrays.asList(
    new Object[] {}, 
    null, 
    new Object[] {}));

mutableList.removeIf(Objects::isNull);

अचल सूची

इस मामले में आपको गैर-अशक्त तत्वों को खोजने के लिए स्ट्रीम एपीआई या फॉर-लूप का उपयोग करना होगा और उन्हें एक नई सूची में जोड़ना होगा।

List<Object[]> immutableList = Arrays.asList(
    new Object[] {}, 
    null, 
    new Object[] {});

List<Object[]> newList = immutableList.stream()
                                      .filter(Objects::nonNull)
                                      .collect(Collectors.toList());