2、jdk8-List集合简单应用

官方示例:官方示例扩展

jdk8 的List集合简单应用

1、简单使用

主要是排序、过滤、转换:

public class ListTest {

    public static void main(String[] args) {

        List<String> list = new ArrayList<>();
        list.add("ADS");
        list.add("BDSC");
        list.add("C$#");
        list.add("65D");
        list.add("EB34");


        //Java8 lambda遍历list
        System.out.println("----------遍历所有项---------->");
        list.forEach(c-> System.out.println(c));

        System.out.println("----------查找相同所有项------>");
        list.forEach(e->{
            if("C$#".equals(e)){
                System.out.println(e);
            }
        });

        //先过滤
        System.out.println("----------遍历过滤所有项------>");
        list.stream().filter(s->s.contains("B")).forEach(c1-> System.out.println(c1));

        //ID为key,转为Map
        System.out.println("----------List->Map------>");
        List<User> lists2 = new ArrayList<>();
        User user1 = new User(1L, "张飞", 21);
        User user2 = new User(2L, "李达", 27);
        User user3 = new User(3L, "王六", 21);
        lists2.add(user1);
        lists2.add(user2);
        lists2.add(user3);
        Map<Long,User> userMap = lists2.stream().collect(Collectors.toMap(User::getId, a -> a,(k1, k2)->k1));
        System.out.println(userMap);


        System.out.println("----------分组------>");
        Map<Integer, List<User>> collect = lists2.stream().collect(Collectors.groupingBy(c -> c.getAge()));
        System.out.println(collect);

        System.out.println("----------空值排序------>");
        List<String> names2 = Arrays.asList("peter", null, "anna", "mike", "xenia");
        names2.sort(Comparator.nullsLast(String::compareTo));
        System.out.println(names2);


        System.out.println("----------集合为空时判断并获取------>");
        List<String> names3 = null;
        Optional.ofNullable(names3).ifPresent(e -> e.sort(Comparator.reverseOrder()));
        System.out.println(names3);

        Integer n = 3;
        Optional.ofNullable(n).ifPresent(t -> t = 5);
        System.out.println(n);
    }
}

2、实体类


class User{
    private long id;
    private String name;
    private int age;

    public User(long id,String name,int age){
        this.id = id;
        this.name = name;
        this.age = age;
    }
    setter/getter....
}

3、运行结果

----------遍历所有项---------->
----------遍历所有项---------->
ADS
BDSC
C$#
65D
EB34
----------查找相同所有项------>
C$#
----------遍历过滤所有项------>
BDSC
EB34

----------List->Map------>
{1=User{id=1, name='张飞', age=21}, 2=User{id=2, name='李达', age=27}, 3=User{id=3, name='王六', age=21}}

----------分组------>
{21=[User{id=1, name='张飞', age=21}, User{id=3, name='王六', age=21}], 27=[User{id=2, name='李达', age=27}]}

----------空值排序------>
[anna, mike, peter, xenia, null]
----------集合为空时判断并获取------>
null
3

内页跳转到的位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值