Dear all,
Thank you for your great job about the openjdk. I have an idea about a new container, Sieve(I give it the name). The java file is something like this: package com.heyifei.studyandshare.utils; /** * @author: ??????(heyifei) * @email: [email protected] * @address: zhangjiang, pudong new district, shanghai, china * @date: 2020/9/21 * @description: */ import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; /** * Container:Sieve */ public class Sieve implements Serializable { private static final long serialVersionUID = 8621987070720161207L; /** * items in the sieve. */ final List<Object> inSieveItems = new ArrayList<>(); /** * items out of the sieve,coproduct. */ final List<Object> outSieveItems = new ArrayList<>(); /** * predict like the hole on the sieve */ private Predicate<Object> predicate = null; public Sieve(){} public Sieve(Predicate<Object> predicate){ if(predicate == null){ throw new NullPointerException(); } this.predicate = predicate; } public boolean put(Object o){ boolean inSieve; if(predicate.test(o)){ inSieveItems.add(o); inSieve = true; }else{ outSieveItems.add(o); inSieve = false; } return inSieve; } public Object take(){ return inSieveItems; } public Object getCoproduct(){ return outSieveItems; } public int count(){ return inSieveItems.size(); } public int getCoproductCount(){ return outSieveItems.size(); } } Thank you.
