最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java8的stream().map()用法詳解

 更新時(shí)間:2025年03月13日 09:37:06   作者:程序員阿斌  
這篇文章主要介紹了Java8的stream().map()用法詳解,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java8的stream().map()用法

在Java編碼過程中可能會遇到這個(gè)場景

遍歷一個(gè)列表,對列表中的屬性進(jìn)行轉(zhuǎn)換、賦值等操作形成我們想要的一個(gè)新列表。通常我們的常規(guī)思路就是直接使用for循環(huán)。

在Java8引入lambda表達(dá)式后我們可以使用stream流鏈?zhǔn)教幚淼姆绞?,形成新流來達(dá)到預(yù)期效果。

stream操作比較多,這里主要針對map()

舉出下面三個(gè)列子

體驗(yàn)stream().map().collect(Collectors.toList())對于集合元素處理的用法。

package com.base.labguage.java8;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamMap {

    private static class People{
        private String name;
        private Integer age;
        private String address;
		
        // 只給出構(gòu)造方法,忽略get/set細(xì)節(jié)
        public People(String name, Integer age, String address) {
            this.name = name;
            this.age = age;
            this.address = address;
        }

    }

    public static class PeoplePub{
        
        private String name;
        private Integer age;

        // 只給出構(gòu)造方法,忽略get/set細(xì)節(jié)
        public PeoplePub(String name, Integer age) {
            this.name = name;
            this.age = age;
        }
        
        // 重寫toString方法
        public String toString(){
            return "(" + this.name + "," + this.age + ")";

        }

    }

    public static void main(String[] args) {

        List<People> peoples = Arrays.asList(
                new People("zs", 25, "cs"),
                new People("ls", 28, "bj"),
                new People("ww", 23, "nj")
        );

        // List -> String
        List<String> names = peoples.stream().map(p -> p.getName()).collect(Collectors.toList());
        // stream流實(shí)現(xiàn)英文字母轉(zhuǎn)大寫
        List<String> upNames = names.stream().map(String::toUpperCase).collect(Collectors.toList());
        // stream流實(shí)現(xiàn)數(shù)字乘倍數(shù)
        List<Integer> ages = peoples.stream().map(p -> p.getAge() * 2).collect(Collectors.toList());
        // list - > new List
        List<PeoplePub> peoplePubs = peoples.stream().map(p -> {
            return new PeoplePub(p.getName(), p.getAge());
        }).collect(Collectors.toList());

        System.out.println("to print upnames List : " + upNames);
        System.out.println("to print ages List : " + ages);
        System.out.println("to print new people List" + peoplePubs.toString());

    }

}

控制臺打印結(jié)果:

to print upnames List : [ZS, LS, WW]
to print ages List : [50, 56, 46]
to print new people List[(zs,25), (ls,28), (ww,23)]

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java容器ArrayList原理解析

    Java容器ArrayList原理解析

    這篇文章主要介紹了Java容器ArrayList原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • ThreadLocal?在上下文傳值場景實(shí)踐源碼

    ThreadLocal?在上下文傳值場景實(shí)踐源碼

    這篇文章主要為大家介紹了ThreadLocal在上下文傳值場景下的實(shí)踐源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • druid配置數(shù)據(jù)庫連接使用密文密碼方式

    druid配置數(shù)據(jù)庫連接使用密文密碼方式

    這篇文章主要介紹了druid配置數(shù)據(jù)庫連接使用密文密碼方式,具有很好的參考價(jià)值,希望對大家有所幫助,
    2023-12-12
  • MybatisPlus中的save方法詳解

    MybatisPlus中的save方法詳解

    save方法是Mybatis-plus框架提供的一個(gè)添加記錄的方法,它用于將一個(gè)實(shí)體對象插入到數(shù)據(jù)庫表中,這篇文章主要介紹了MybatisPlus中的save方法,需要的朋友可以參考下
    2023-11-11
  • 解決MyEclipse中Maven設(shè)置jdk版本jdk1.8報(bào)錯(cuò)問題

    解決MyEclipse中Maven設(shè)置jdk版本jdk1.8報(bào)錯(cuò)問題

    今天安裝了jdk1.8、tomcat8、和maven3.5.2,弄好后在myeclipse新建了一個(gè)maven項(xiàng)目,項(xiàng)目默認(rèn)是jdk1.5,改成jdk1.8后項(xiàng)目報(bào)錯(cuò)
    2018-10-10
  • 掃描到配置類但是配置類不生效的問題及解決方案

    掃描到配置類但是配置類不生效的問題及解決方案

    文章主要討論了配置類不生效的幾種常見原因及解決方法,包括配置類未被正確掃描、@Configuration注解未被解析、@Bean注解未被解析和屬性未被正確注入等,并提供了相應(yīng)的解決措施,如使用@ComponentScan指定掃描路徑或使用@Import導(dǎo)入配置類
    2026-03-03
  • Java環(huán)境中MyBatis與Spring或Spring MVC框架的集成方法

    Java環(huán)境中MyBatis與Spring或Spring MVC框架的集成方法

    和MyBatis類似,Spring或者Spring MVC框架在Web應(yīng)用程序的運(yùn)作中同樣主要負(fù)責(zé)處理數(shù)據(jù)庫事務(wù),這里我們就來看一下Java環(huán)境中MyBatis與Spring或Spring MVC框架的集成方法
    2016-06-06
  • Java Lambda 表達(dá)式從入門到實(shí)戰(zhàn)徹底搞懂函數(shù)式編程

    Java Lambda 表達(dá)式從入門到實(shí)戰(zhàn)徹底搞懂函數(shù)式編程

    本文詳細(xì)介紹了Java 8中的Lambda表達(dá)式,包括為什么需要Lambda、Lambda的核心概念、語法詳解、實(shí)戰(zhàn)場景、與匿名內(nèi)部類的區(qū)別、優(yōu)缺點(diǎn)以及應(yīng)用建議,Lambda表達(dá)式簡化了代碼編寫,提升了開發(fā)效率,是函數(shù)式編程的重要體現(xiàn),感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • 解決Spring boot2.0+配置攔截器攔截靜態(tài)資源的問題

    解決Spring boot2.0+配置攔截器攔截靜態(tài)資源的問題

    這篇文章主要介紹了解決Spring boot2.0+配置攔截器攔截靜態(tài)資源的問題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Aspectj與Spring AOP的對比分析

    Aspectj與Spring AOP的對比分析

    這篇文章主要介紹了Aspectj與Spring AOP的對比分析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

苍溪县| 渝北区| 修文县| 广汉市| 侯马市| 建湖县| 德惠市| 巢湖市| 金川县| 法库县| 远安县| 陇川县| 阿拉善左旗| 右玉县| 安龙县| 民丰县| 昌乐县| 永德县| 新乡县| 深泽县| 忻州市| 大余县| 徐汇区| 和静县| 余庆县| 岳西县| 九龙坡区| 大悟县| 阳西县| 荥经县| 临颍县| 方城县| 阳城县| 吉安市| 文成县| 买车| 蒙阴县| 扶沟县| 阿瓦提县| 岑巩县| 通化市|