利用Java8 stream对Map排序

原文地址:

https://blog.csdn.net/u013719012/article/details/82117477

import java.util.*;
import java.util.stream.Collectors;

public class Main2 {
    public static void main(String[] args) {
        Map<Integer, String> abcMap = new HashMap<>();
        abcMap.put(19, "19");
        abcMap.put(14, "14");
        abcMap.put(2, "2");
        LinkedHashMap<Integer, String> linkedMap = new LinkedHashMap<>();
        // 将HashMap转换成LinkedHashMap
        abcMap.entrySet().stream().sorted(Map.Entry.comparingByKey())
                .forEachOrdered(entry -> linkedMap.put(entry.getKey(), entry.getValue()));
        // 如果想要转换成List
        List collect = linkedMap.entrySet().stream().map(Map.Entry::getValue).collect(Collectors.toList());
        List collect2 = linkedMap.values().stream().collect(Collectors.toList());
        List collect3 = new ArrayList<>(linkedMap.values());

        for (Object o : collect3) {
            System.out.println(o);
        }
    }

}

原文地址:https://www.cnblogs.com/n031/p/12090253.html

时间: 2024-08-30 13:19:29

利用Java8 stream对Map排序的相关文章

使用Java8 Stream API对Map按键或值进行排序

一.什么是Java 8 Stream 使用Java 8 Streams,我们可以按键和按值对映射进行排序.下面是它的工作原理: 将Map或List等集合类对象转换为Stream对象 使用Streams的sorted()方法对其进行排序 最终将其返回为LinkedHashMap(可以保留排序顺序) sorted()方法以Comparator作为参数,从而可以按任何类型的值对Map进行排序.如果对Comparator不熟悉,可以看本号前几天的文章,有一篇文章专门介绍了使用Comparator对Lis

java8中stream的map和flatmap的理解

转自https://blog.csdn.net/wynjauu/article/details/78741093 假如我们有这样一个需求给定单词列表["Hello","World"],你想要返回列表["H","e","l", "o","W","r","d"], 对于这样的需求,我们可能想到的第一个版本可能是这样子的: words

Java语言利用Collections.sort对Map,List排序

1.main方法包含TreeMap排序1,TreeMap排序2,HashMap排序,List<Integer>排序,List<Bean>排序,List<Map>排序 package com.tao.test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Li

【转】Java8 Stream 流详解

  当我第一次阅读 Java8 中的 Stream API 时,说实话,我非常困惑,因为它的名字听起来与 Java I0 框架中的 InputStream 和 OutputStream 非常类似.但是实际上,它们完全是不同的东西. Java8 Stream 使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合进行链状流式的操作. 本文就将带着你如何使用 Java 8 不同类型的 Stream 操作.同时您还将了解流的处理顺序,以及不同顺序的流操作是如何影响运行时性能的. 我们还将学习终端

Java8 Stream API

Stream是Java8中,操作集合的一个重要特性. 从iteration到Stream操作 当你操作一个集合的时候,你通常的做法是迭代每一个元素,然后处理你想要的事情.举个例子: String contents = new String(Files.readAllBytes( Paths.get("alice.txt")), StandardCharsets.UTF_8); // 读取文件到字符串中 List<String> words = Arrays.asList(c

java8 stream流操作

Stream 在对流进行处理时,不同的流操作以级联的方式形成处理流水线.一个流水线由一个源(source),0 到多个中间操作(intermediate operation)和一个终结操作(terminal operation)完成. 源:源是流中元素的来源.Java 提供了很多内置的源,包括数组.集合.生成函数和 I/O 通道等. 中间操作:中间操作在一个流上进行操作,返回结果是一个新的流.这些操作是延迟执行的. 终结操作:终结操作遍历流来产生一个结果或是副作用.在一个流上执行终结操作之后,该

图解java8 stream 的几个转换方法

图片摘自:http://ifeve.com/stream/ 1.distinct 对于stream中包含的元素进行去重复操作(去重复依赖元素的equals方法) 2.filter 对于stream中包含的元素使用给定的过滤函数进行过滤操作 3.map 对于stream中包含的元素使用给定的转换函数进行转换操作.这个方法有三个变种方法:mapToInt.mapToLong.mapToDouble 4.flatmap 和map类似,不同的是其每个元素转换得到的是stream对象,会把子stream中

java8中的list排序

最近写项目时,遇到了list排序的问题,想到项目用的jdk1.8,就用了jdk8的相关方法.因为list中的元素是map,排序用的而是自定义的方法. 开始用的void方法,排序用的是list.stream().sorted.发现排序没有效果,查证后发现list.stream().sorted的排序要返回一个集合,用void方法,没有返回值,所以排序没有效果,后来使用的list.sort()方法,此方法直接改变原有集合,不需要返回值,方法有效. 原文地址:https://www.cnblogs.c

Java8 Stream流

Java8 Stream流 Java8关于map和flatMap的代码片段思考 Java8初体验(二)Stream语法详解 distinct() /* 返回一个流包含不同的元素(根据equals方法判断,null值并不会报空指针异常,会保留一个null). 对于有序的流保证稳定性,保留最先出现的元素,对于无序的流不保证稳定性. */ /** * Returns a stream consisting of the distinct elements (according to * {@link