Java中是否有任何不添加空对象的集合?给定一个项目列表,查询数据库中的那些项目,当从数据库返回结果时,如果该项目确实存在于数据库中,则将其添加到结果列表中;如果它不返回null,则将其丢弃。

我有以下代码可以做到这一点:

reqIds.forEach(
        reqId -> {
          columnValueMap.clear();
          columnValueMap.put("request_id", reqId);
          EventAudit auditRecord =
              pollDatabaseFindByIdAndKey(
                  EventAudit.class, columnValueMap);

          if (auditRecord != null) {
            auditMap.put(auditRecord.getRequestId(), auditRecord);
          }
        });


我知道我可以使用Java流过滤器过滤出null,但是只是想知道是否有任何智能集合会自动拒绝null对象,因此我不需要进行额外的Null检查

最佳答案

您可以使用apache commons集合来做到这一点,

import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.PredicateUtils;
import com.google.common.collect.Lists;

public class Test {
    public static void main(String[] args) {
        List<Integer> l = Lists.newArrayList(1, 2, 3, null, 7, null, 8, null);
        CollectionUtils.filter(l, PredicateUtils.notNullPredicate());
        System.out.println(l);
    }
}


上面的代码将输出类似的输出,

[1, 2, 3, 7, 8]

10-02 07:03
查看更多