import com.alibaba.fastjson.JSON;
import com.ctrip.car.osd.util.LogHelper;
import org.apache.commons.collections.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;

public class CacheHelper {
    private static final int EXPIREDSECOND = 60 * 10;//10 MINUTES
     /**
     * 
     * @param key 缓存key
     * @param supplier 需缓存结果的方法
     * @param classz 缓存数据的类型
     * @param <T>
     * @return
     */
    public static <T> List<T> getOrSetData(String key, Supplier<List<T>> supplier, Class classz) {
        List<T> list;
        try {
            //修改成自己的缓存实现
            //存在缓存则使用fastjson对缓存中的数据进行转换
            if (RedisManager.exists(key)) {
                list = JSON.parseArray(RedisManager.get(key), classz);
            } else {
                //不存在缓存的则调用supplier,并且将结果存入缓存
                list = supplier.get();
                if (CollectionUtils.isNotEmpty(list)) {
                    RedisManager.set(key, JSON.toJSONString(list), EXPIREDSECOND);
                }
            }
        } catch (Exception ex) {
            LogHelper.error("CacheHelper.getOrSetData", ex);
            list = new ArrayList<>();
        }
        return list;
    }
}

List<DataType> allList = CacheHelper.getOrSetData(CACHE_KEY, () -> getAllData(), Advertisement.class);

 List<Person> lisiList = new ArrayList<>();
        Consumer <Person> consumer  =  x -> {
            if (x.name.equals("lisi")){
                lisiList.add(x);
            }
        };

        consumer = consumer.andThen(
           x -> lisiList.removeIf(y -> y.age < 23)
        );

        Stream.of(
                new Person(21,"zhangsan"),
                new Person(22,"lisi"),
                new Person(23,"wangwu"),
                new Person(24,"wangwu"),
                new Person(23,"lisi"),
                new Person(26,"lisi"),
                new Person(26,"zhangsan")
        ).forEach(consumer);

        System.out.println(JSON.toJSONString(lisiList));
/**
     * 1. 必须为女生; 
     * 2. 姓名为4个字。
     */
    public static void main(String[] args) {
        String[] array = { "迪丽热巴,女", "古力娜扎,女", "马尔扎哈,男", "赵丽颖,女" };
        getFemaleAndname((s) -> s.split("\\,")[0].length() == 4, 
                (s) -> s.split("\\,")[1].equals(""), array);
    }
    private static void getFemaleAndname(Predicate<String> one,
            Predicate<String> two, String[] arr) {
        for (String string : arr) {
            if (one.and(two).test(string)) {
                System.out.println(string);
            }
        }
    }
public class CheckUtils {
    private static final Function<String, String> lengthCheck = params -> {
        if (params.length() > 100) {
            throw new RuntimeException("Length exceed max limit.");
        }
        return params;
    };

    private static final Function<String, String> invalidCharacterCheck = str -> {
        if (!str.matches("^[a-f,A-F]$")) {
            throw new RuntimeException("Contains invalid character.");
        }
        return str;
    };
    
    /**
     * 这里的公共方法组合了该类中的基本校验逻辑构成一个复合的逻辑
     */
    public static void checkStringLengthAndPhoneNumber(String string) {
        invalidCharacterCheck.compose(lengthCheck).apply(string);
    }
}

 

原文地址:http://www.cnblogs.com/goPush/p/16784043.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性