Java8集合的一些操作

整理一些关于Java8集合的操作,有时间再慢慢更新内容

示例类 TagInfo

@Data
public static class TagInfo {
    /**
     * 标签代码
     */
    private String tagNo;
    /**
     * 标签名称
     */
    private BigDecimal tagName;
    /**
     * 类别
     */
    private String classType;

}

List转Map<String, TagInfo>

// 标签代码 为key值
Map<String, TagInfo> = list.stream().collect(
		Collectors.toMap(item -> item.getTagNo(), Function.identity(), (v1, v2)->v1)
);

// 标签代码+标签名称 为key值
Map<String, TagInfo> = list.stream().collect(
		Collectors.toMap(item -> item.getTagNo() + item.getTagName(), Function.identity(), (v1, v2)->v1)
);

List过滤后取第一个

list.stream().filter(ele->classType.equals(ele.getClassType())).findFirst().get();

List中筛选出符合条件的数据

List<TagInfo> findList = list.stream()
        .filter(item -> "绘画".equals(item.getClassType()))
        .collect(Collectors.toList());

List中筛选出符合条件的数据,从集合中取出指定字段,并且去重,组合成新的集合

例如:取出所有拥有绘画类型的标签代码

List<String> findList = list.stream()
                .filter(item -> "绘画".equals(item.getClassType()))
                .map(TagInfo::getTagNo)
                .distinct()
                .collect(Collectors.toList());

List中取得所有标签代码

List<Integer> findList = list.stream()
        .map(TagInfo::getTagNo)
        .collect(Collectors.toList());

List根据标签代码进行分组

Map<String, List<TagInfo>> map = list.stream().collect(
        Collectors.groupingBy(item -> item.getTagNo())
);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值