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);
    }
  }
}

打印结果:

 

相关文章
|
3月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
31 3
|
4月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
5月前
|
XML Java API
List与String相互转化方法汇总
本文汇总了List与String相互转化的多种方法,包括使用`String.join()`、`StringBuilder`、Java 8的Stream API、Apache Commons Lang3的`StringUtils.join()`以及Guava的`Joiner.on()`方法实现List转String;同时介绍了使用`split()`方法、正则表达式、Apache Commons Lang3的`StringUtils.split()`及Guava的`Splitter.on()`方法实现String转List。
169 1
List与String相互转化方法汇总
|
5月前
|
存储 Java 索引
|
6月前
|
XML Java API
List与String相互转化的方法有哪些
摘要:本文概述了Java中List转换为String及反之的多种策略。使用`String.join()`可简洁地连接List元素;`StringBuilder`提供灵活控制;Java 8 Stream API收集器简化操作;Apache Commons Lang3的`StringUtils.join()`和Guava的`Joiner.on()`支持外部库的高效转换。
108 2
|
6月前
|
文字识别 Java
文本,文字识别07,SpringBoot服务开发-入参和返回值,编写接口的时候,要注意识别的文字返回的是多行,因此必须是List集合,Bean层,及实体类的搭建
文本,文字识别07,SpringBoot服务开发-入参和返回值,编写接口的时候,要注意识别的文字返回的是多行,因此必须是List集合,Bean层,及实体类的搭建
|
7月前
|
Java API
将`List<String>`转换为`List<Long>`
将`List<String>`转换为`List<Long>`
|
8月前
|
NoSQL Java Redis
redis-学习笔记(string , hash , list , set , zset 前置知识)
redis-学习笔记(string , hash , list , set , zset 前置知识)
42 0
redis-学习笔记(string , hash , list , set , zset 前置知识)
|
7月前
Failed to bind properties under ‘logging.level‘ to java.util.Map java.lang.String, java.lang.String
Failed to bind properties under ‘logging.level‘ to java.util.Map java.lang.String, java.lang.String
45 0
|
4月前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19