java8 Lambda

/**
 * Created by jiyang on 17:06 2017/12/20
 */
public class Lambda {


    public static void main(String[] args) {

        List<String> list = Lists.newArrayList();
        list.add("d");
        list.add("a");
        list.add("b");
        list.add("c");

        HashMap<String, String> map = Maps.newHashMap();
        map.put("1", "a");
        map.put("2", "b");
        map.put("3", "c");

        List<User> listUser = Lists.newArrayList();
        listUser.add(new User("zhangsan", "11"));
        listUser.add(new User("lisi", "22"));


        // 遍历list
        list.forEach((v) -> System.out.println(v));
        System.out.println("------------------------------------");

        // 遍历map
        map.forEach((k, v) -> System.out.println(k + ":" + v));
        System.out.println("------------------------------------");

        // stream filter()用于过滤,即使原stream中满足条件的元素构成新的streamList filter = list.stream().filter(s -> s.equals("1")).collect(Collectors.toList());
        filter.forEach(s -> System.out.println(s));
        System.out.println("------------------------------------");

        // stream map()用于映射,遍历原stream中的元素,转换后构成新的streamList<String> listUp = list.stream().map(String::toUpperCase).collect(Collectors.toList());
        listUp.forEach(s -> System.out.println(s));
        System.out.println("------------------------------------");

        // stream map()
        List<String> names = listUser.stream().map(User::getName).collect(Collectors.toList());
        names.forEach(v -> System.out.println(v));
        System.out.println("------------------------------------");

        // stream sorted() 排序
        List<String> sortList = list.stream().sorted().collect(Collectors.toList());
        sortList.forEach(v -> System.out.println(v));
        System.out.println("------------------------------------");

        // stream limit()
        sortList = list.stream().sorted().limit(3).collect(Collectors.toList());
        sortList.forEach(v -> System.out.println(v));
        System.out.println("------------------------------------");

        // stream skip()
        sortList = list.stream().sorted().skip(1).limit(3).collect(Collectors.toList());
        sortList.forEach(v -> System.out.println(v));
        System.out.println("------------------------------------");

        // stream count()
        long count = list.stream().filter(s -> s.equals("a")).count();
        System.out.println(count);
        System.out.println("------------------------------------");

/ arraystorm
        String[] array = {"a", "a", "c", "d"};
        List<String> a = Arrays.stream(array).filter(v -> v.equals("a")).limit(2).collect(Collectors.toList());
        a.forEach(v -> System.out.println(v));
        System.out.println("------------------------------------");


        // stream findFirst
        Optional<String> optional = Arrays.stream(array).filter(v -> !v.equals("a")).findFirst();
        System.out.println(optional.get());
        System.out.println("------------------------------------");

        // stream of
        //String[] cacheNames = {};
        //Stream.of(cacheNames).forEach(cacheName -> expireMap.put(cacheName, finalExpireAfter));

        // stream filtersortedmaplimitcollect
        listUser.stream().filter(u -> u.getName() == "username")
                .sorted(Comparator.comparing(User::getName).reversed())
                .map(User::getPassword)
                .limit(2)
                .collect(Collectors.toList());

        // distinct 返回没有重复元素的stream

        //skip(n): 返回一个忽略前n个的stream

        // anyMatch, allMatch, noneMatch
        boolean anyMatch = listUser.stream().allMatch(u -> u.getName().equals("111"));

        // findFirstfindAny,可以从Stream中获取任意元素,返回Optional对象
        Optional<User> optionalUser = listUser.stream().filter(u -> u.getName().equals("aaa")).findFirst();
        User opUser = optionalUser.get();

        // Optional<T>类可以存放一个存在或者不存在的值。在下面代码中,findAny可能没有返回一个交易类型是grocery类的信息。
        // Optional存在好多方法检测元素是否存在。比如,如果一个交易信息存在,我们可以使用相关函数处理optional对象。
        Optional<User> opUsers = listUser.stream().filter(u -> u.getName().equals("aaa")).findAny();

        // 数值计算reduce
        List<Integer> intArray = Arrays.asList(1, 2, 3, 4, 5);
        int sum = intArray.stream().reduce(0, (ab, cd) -> ab + cd);

    }
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值