List<实体类>转map<String,String>及重复处理

简介: List<实体类>转map<String,String>及重复处理

   这是我遇到的一种写法,由于之前没使用过,所以自己研究一下,感觉也就那么回事,下面是我自己的测试用例。

介绍一下:

  .stream().collect

   在Java中,.stream().collect()是一种用于对集合进行流式处理并收集结果的操作。它的主要作用是对集合中的元素进行某种操作,然后将结果收集起来。

package Tool;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.stream.Collectors;
import AnZhong.Student;
public class convertMap {
  public static void main(String[] args) {
    List<Student> list = new ArrayList<>();
    Student student = new Student();
    student.setAge("11");
    student.setName("万能C");
    student.setId(1);
    list.add(student);
    Student student2 = new Student();
    student2.setAge("11");
    student2.setName("admin");
    student2.setId(2);
    list.add(student2);
    Student student3 = new Student();
    student3.setAge("13");
    student3.setName("Jack");
    student3.setId(3);
    list.add(student3);
    //ke代表键,v是值,(k1,k2) -> k1如果有重复的ke,取第一个
    Map<String, String> map = list.stream().collect(Collectors.toMap(ke -> String.valueOf(ke.getId()),v -> v.getName(),(k1,k2) -> k1));
/********************** 检验是否转map成功 *************************/ 
//遍历方法一
    //获取map中的key键名的set集合
    Set<String> ketSet = map.keySet();
    // 得到迭代器
    Iterator<String> iterator = ketSet.iterator();
    //使用Lambda方式输出
    iterator.forEachRemaining(element -> {
      String value = map.get(element);
      System.out.println(element + "->" + value);
    });
//遍历方法二
    System.out.println("****************************");
    //Entry类,键值对类
    Set<Entry<String, String>> entrySet = map.entrySet();//引用的是java.util里面的包
    for (Entry<String,String> entry : entrySet) {
      //获取键值对类中的key
      String key = entry.getKey();
      //获取键值对类中的value
      String value = entry.getValue();
      System.out.println(key+":"+value);
    }
  }
}

打印结果:

 

相关文章
|
2月前
|
存储 安全 Java
java集合框架及其特点(List、Set、Queue、Map)
java集合框架及其特点(List、Set、Queue、Map)
|
4月前
|
数据处理
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
24 0
|
6天前
|
Java API
List转Map(id为key,list为value)
List转Map(id为key,list为value)
8 0
|
1月前
|
存储 C语言 C++
C++中STL常用容器(vector、deque、list、map、set)一文带你了解
C++中STL常用容器(vector、deque、list、map、set)一文带你了解
如何使用Stream流将List转换为Map
如何使用Stream流将List转换为Map
|
2月前
|
存储 NoSQL Java
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
54 0
|
4月前
|
Java 索引
java8流处理器list转map的对比
java8流处理器list转map的对比
33 0
|
4月前
|
前端开发 Java 测试技术
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
21 0
|
4月前
|
存储 Java API
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
27 0
|
4月前
|
Java API
利用Stream流List<实体类>转List<String>或List<String>转List<String>
利用Stream流List<实体类>转List<String>或List<String>转List<String>
41 0