java8 转对象,Java8转Map,Java8转Llist

简介: java8 转对象,Java8转Map,Java8转Llist

1.准备数据

public static List<Persion> getData(){
        List<Persion> arrayList = new ArrayList<>();
        arrayList.add(new Persion("李四","20","男"));
        arrayList.add(new Persion("王麻子","30","男"));
        arrayList.add(new Persion("wangwu","10","女"));
        arrayList.add(new Persion("wangwu","10","女"));
        arrayList.add(null);
        return arrayList;
    }

2.List对象转Map

    public static void main(String[] args) {
        List<Persion> persions = getData();
        //list对象转 Map<String,String> name 是key,age是value。
        Map<String, String> stringMap = persions.stream().collect(Collectors.toMap(Persion::getName, Persion::getSex));
        System.out.println("stringMap:"+stringMap);
        // 结果:stringMap:{李四=男, 王麻子=男, wangwu=女}
        
    }

3.List对象转Map对象并去重

    public static void main(String[] args) {
        List<Persion> persions = getData();
        Map<String, Persion> stringMap = persions.stream().collect(Collectors.toMap(Persion::getName, Function.identity(), (key1, key2) -> key2));
        System.out.println("stringMap:"+stringMap);
        
 
    }
//输出:stringMap:{李四=Persion{name='李四', age='20', sex='男'}, 王麻子=Persion{name='王麻子', age='30', sex='男'}, wangwu=Persion{name='wangwu', age='10', sex='女'}}
//收集对象本身并转换
        Map<String, Persion> persionMap2 = persions.stream().collect(Collectors.toMap(Persion::getName, v -> new Persion(v.getName(),"","")));

4.List对象转List转Set转List<String> 都类似

    public static void main(String[] args) {
        List<Persion> persions = getData();
 
        List<Persion> persions1 = persions.stream().collect(Collectors.toList());
//        list对象转list对象的属性
        Set<String> collect2 = persions.stream().map(Persion::getName).collect(Collectors.toSet());
        System.out.println("stringMap:"+collect2);
        // 结果:stringMap:stringMap:[李四, 王麻子, wangwu]
 
    }

5.多个字段排序 第一个字段降序,第二个字段升序

    public static void main(String[] args) {
        List<Persion> persions = getData();
        List<Persion> persions1 = persions.stream().sorted(Comparator.comparing(Persion::getAge).reversed().thenComparing(Persion::getAge)).collect(Collectors.toList());
        System.out.println("stringMap:"+persions1);
        
 
    }
 
// 结果:stringMap:[Persion{name='王麻子', age='30', sex='男'}, Persion{name='李四', age='20', sex='男'}, Persion{name='wangwu', age='10', sex='女'}, Persion{name='wangwu', age='10', sex='女'}]

6.根据某个字段分组

  public static void main(String[] args) {
        List<Persion> persions = getData();
        Map<String, List<Persion>> collect3 = persions.stream().collect(Collectors.groupingBy(Persion::getAge));
        System.out.println("stringMap:"+collect3);
       
    }
// 结果:stringMap:{30=[Persion{name='王麻子', age='30', sex='男'}], 20=[Persion{name='李四', age='20', sex='男'}], 10=[Persion{name='wangwu', age='10', sex='女'}, Persion{name='wangwu', age='10', sex='女'}]}

7.去除空元素

    public static void main(String[] args) {
        List<Persion> persions = getData();
        boolean removeAll = persions.removeAll(Collections.singleton(null));
        System.out.println("stringMap:"+removeAll);
        System.out.println("persions:"+persions);
        
 
    }
//结果:stringMap:true
//persions:[Persion{name='李四', age='20', sex='男'}, Persion{name='王麻子', age='30', sex='男'}, Persion{name='wangwu', age='10', sex='女'}, Persion{name='wangwu', age='10', sex='女'}]
相关文章
|
11天前
|
Java
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
本文介绍了Java中抽象类和抽象方法的使用,以及ArrayList的基本操作,包括添加、获取、删除元素和判断列表是否为空。
13 2
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
|
11天前
ES6中map对象的使用,确实比Object好使哈
ES6中Map对象的使用优势,包括任意类型作为键、直接获取大小、增删查改操作等。Map的键可以是函数、对象、NaN等,支持forEach循环和for...of循环。
22 1
ES6中map对象的使用,确实比Object好使哈
|
12天前
|
存储 Java
Java编程中的对象和类
【8月更文挑战第55天】在Java的世界中,“对象”与“类”是构建一切的基础。就像乐高积木一样,类定义了形状和结构,而对象则是根据这些设计拼装出来的具体作品。本篇文章将通过一个简单的例子,展示如何从零开始创建一个类,并利用它来制作我们的第一个Java对象。准备好让你的编程之旅起飞了吗?让我们一起来探索这个神奇的过程!
25 10
|
15天前
|
存储 Java 开发者
Java编程中的对象序列化与反序列化
【9月更文挑战第20天】在本文中,我们将探索Java编程中的一个核心概念——对象序列化与反序列化。通过简单易懂的语言和直观的代码示例,你将学会如何将对象状态保存为字节流,以及如何从字节流恢复对象状态。这不仅有助于理解Java中的I/O机制,还能提升你的数据持久化能力。准备好让你的Java技能更上一层楼了吗?让我们开始吧!
|
17天前
|
Java
Java实现:将带时区的时间字符串转换为LocalDateTime对象
通过上述方法,你可以将带时区的时间字符串准确地转换为 `LocalDateTime`对象,这对于处理不需要时区信息的日期和时间场景非常有用。
211 4
|
17天前
|
SQL Java 关系型数据库
在Java中,创建数据源对象
在Java中,创建数据源对象
28 1
|
9天前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19
|
8天前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
2月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
2月前
|
Java
【Java集合类面试二十二】、Map和Set有什么区别?
该CSDN博客文章讨论了Map和Set的区别,但提供的内容摘要并未直接解释这两种集合类型的差异。通常,Map是一种键值对集合,提供通过键快速检索值的能力,而Set是一个不允许重复元素的集合。
下一篇
无影云桌面