赞
踩
有一个对象列表,需要根据多个参数进行 filter。但是参数不一定存在,若不存在则跳过,否则过滤。
核心是在 filter 时先判断 paramter 是否存在。
public static void main(String[] args) { List<String> objects = new ArrayList<>(); objects.add("1"); objects.add("2"); objects.add("3"); filterCollection(objects,"1",""); } public static void filterCollection(List<String> collection, String parameter1, String parameter2) { if (parameter1 == null && parameter2 == null) { return; } collection = collection.stream() .filter(e -> parameter1.length() < 1|| e.equals(parameter1)) .filter(e -> parameter2.length() < 1 || e.equals(parameter2)) .collect(Collectors.toList()); for (int i = 0; i < collection.size(); i++) { System.out.println("collection = " + collection.get(i)); } }
输出:
collection = 1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。