How to separate a List by a condition using Java 8 streams
问题 Consider the following code: List<Integer> odd = new ArrayList<Integer>(); List<Integer> even = null; List<Integer> myList = Arrays.asList(1,2,3,4,5,6,7,8,9,10); even = myList.stream() .filter(item -> { if(item%2 == 0) { return true;} else { odd.add(item); return false; } }) .collect(Collectors.toList()); What I am trying to do here is get the even and odd values from a list into separate lists. The stream filter() method returns true for even items and the stream collector will collect them.