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

Java與Scala創(chuàng)建List與Map的實(shí)現(xiàn)方式

 更新時(shí)間:2021年10月11日 09:18:21   作者:騎碼找馬  
這篇文章主要介紹了Java與Scala創(chuàng)建List與Map的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java與Scala創(chuàng)建List與Map

//Java
List<String> languages = new ArrayList<>(); 
Map<String, Class> mapFields = new HashMap();
    
//Scala 
val languages = new util.ArrayList[String]    
val mapFields=new util.HashMap[String, Class]

Java自定義map與scala map對(duì)比

1. 背景

  • 在學(xué)習(xí)scala過(guò)程中,不可避免需要將java與scala對(duì)比,本文就是基于scala的map,使用java進(jìn)行實(shí)現(xiàn)
  • jdk1.8中,引入了Stream、lambda表達(dá)式,這讓java也可以支持函數(shù)式編程。

2. java代碼

2.1 自定義實(shí)現(xiàn)的map

package com.doit.udf;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
 * @author hulc
 * @slogan: just do it
 * @date 2020/9/13 21:16
 */
public class UserDefineFunc {
    public static void main(String[] args) {
        test1();
    }
    private static void test1() {
        // 使用java來(lái)實(shí)現(xiàn)scala中針對(duì)集合的map、reduce、filter函數(shù)的效果
        List<Integer> list = new ArrayList<>();
        list.addAll(Arrays.asList(1,2,3,4,5,6,7,8,9));
        MyList<Integer> integers = new MyList<Integer>(list);
        // 使用匿名內(nèi)部類方式進(jìn)行自定義map方法調(diào)用
        List<Object> list1 = integers.map(new MyMapFunction() {
            @Override
            public <String, K> String map(K k) {
                if (k instanceof Integer) {
                    Integer i = (Integer) k;
                    i += 10;
                    return (String) ("" + i);
                }
                return null;
            }
        });
        for (Object o : list1) {
            System.out.println(o.toString());
        }
    }
}
class MyList<T> extends ArrayList<T> {
    private List<T> words;
    public MyList(List<T> words) {
        this.words = words;
    }
    public List<Object> map(MyMapFunction function) {
        List<Object> ts = new ArrayList<>();
        for (T t : words) {
            Object map = function.map(t);
            ts.add(map);
        }
        return ts;
    }
}
interface MyMapFunction {
    // map就是一個(gè)轉(zhuǎn)換函數(shù),輸入一個(gè)K,轉(zhuǎn)換為一個(gè)T
    <T, K> T map(K k);
}

2.2 使用jdk的Sream進(jìn)行函數(shù)式處理

private static void test2() {
        List<Integer> list = new ArrayList<>();
        list.addAll(Arrays.asList(1,2,3,4,5,6,7,8,9));
        // 將list轉(zhuǎn)換為Stream,再進(jìn)行處理,這時(shí)候就可以使用函數(shù)式進(jìn)行處理
        Stream<Integer> integerStream = list.stream();
        Stream<String> stringStream = integerStream.map(w -> {
            w += 10;
            return "" + w;
        });
        // 遍歷打印
        Object[] toArray = stringStream.toArray();
        for (Object o : toArray) {
            System.out.println(o.toString());
        }
    }

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

相關(guān)文章

  • springboot中關(guān)于classpath:路徑使用及說(shuō)明

    springboot中關(guān)于classpath:路徑使用及說(shuō)明

    這篇文章主要介紹了springboot中關(guān)于classpath:路徑使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Java中的TreeSet集合解析

    Java中的TreeSet集合解析

    這篇文章主要介紹了Java中的TreeSet集合解析,  TreeSet是一個(gè)有序的集合,基于TreeMap實(shí)現(xiàn),支持兩種排序方式:自然排序和定制排序,
    TreeSet是非同步的,線程不安全的,需要的朋友可以參考下
    2023-09-09
  • 完美解決Spring聲明式事務(wù)不回滾的問(wèn)題

    完美解決Spring聲明式事務(wù)不回滾的問(wèn)題

    下面小編就為大家?guī)?lái)一篇完美解決Spring聲明式事務(wù)不回滾的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 使用SpringBoot+Prometheus+Grafana實(shí)現(xiàn)可視化監(jiān)控

    使用SpringBoot+Prometheus+Grafana實(shí)現(xiàn)可視化監(jiān)控

    本文主要給大家介紹了如何使用Spring?actuator+監(jiān)控組件prometheus+數(shù)據(jù)可視化組件grafana來(lái)實(shí)現(xiàn)對(duì)Spring?Boot應(yīng)用的可視化監(jiān)控,文中有詳細(xì)的代碼供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-02-02
  • 基于springcloud異步線程池、高并發(fā)請(qǐng)求feign的解決方案

    基于springcloud異步線程池、高并發(fā)請(qǐng)求feign的解決方案

    這篇文章主要介紹了基于springcloud異步線程池、高并發(fā)請(qǐng)求feign的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Java?switch?case語(yǔ)句舉例詳解

    Java?switch?case語(yǔ)句舉例詳解

    這篇文章主要給大家介紹了關(guān)于Java?switch?case語(yǔ)句舉例詳解的相關(guān)資料,switch case語(yǔ)句是一種流程控制語(yǔ)句,用于根據(jù)不同的條件執(zhí)行不同的代碼塊,需要的朋友可以參考下
    2023-10-10
  • Java的split方法使用詳解

    Java的split方法使用詳解

    這篇文章主要詳細(xì)介紹了Java的split方法使用說(shuō)明,十分的細(xì)致全面,有需要的小伙伴可以參考下。
    2015-07-07
  • java啟動(dòng)jar包修改JVM默認(rèn)內(nèi)存問(wèn)題

    java啟動(dòng)jar包修改JVM默認(rèn)內(nèi)存問(wèn)題

    這篇文章主要介紹了java啟動(dòng)jar包修改JVM默認(rèn)內(nèi)存問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • idea更改默認(rèn)緩存位置的步驟詳解

    idea更改默認(rèn)緩存位置的步驟詳解

    在idea使用中,會(huì)產(chǎn)生大量的緩存,一般默認(rèn)存放在C盤里面,會(huì)加大C盤的儲(chǔ)存負(fù)擔(dān),如果C盤足夠大,可以不考慮更改idea的緩存位置,所以本文小編給如何更改idea默認(rèn)緩存位置,文中通過(guò)圖文結(jié)合介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 解析springboot包裝controller返回值問(wèn)題

    解析springboot包裝controller返回值問(wèn)題

    這篇文章主要介紹了springboot包裝controller返回值問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12

最新評(píng)論

都安| 理塘县| 河源市| 扬中市| 新蔡县| 马边| 略阳县| 商洛市| 杭锦后旗| 交口县| 星座| 读书| 纳雍县| 中山市| 富阳市| 绥棱县| 磐安县| 延边| 邻水| 瑞金市| 新乐市| 修文县| 三门县| 庆阳市| 精河县| 丹凤县| 永城市| 宜黄县| 华亭县| 白水县| 仙居县| 开远市| 四平市| 惠州市| 固始县| 当阳市| 高安市| 儋州市| 景谷| 淅川县| 大安市|