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

Java9中對(duì)集合類擴(kuò)展的of方法解析

 更新時(shí)間:2021年09月02日 15:01:21   作者:英杰王  
這篇文章主要介紹了Java9 中對(duì)集合類擴(kuò)展的of方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java9 集合類擴(kuò)展of方法

package com.jd.collections;
import org.junit.Test;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class StreamTest {
    @Test
    public void testSet() {
        Set<Integer> integerSet = Set.of(1, 2, 3, 4, 5, 6, 7, 8);
        System.out.println(integerSet);
    }
    @Test
    public void testList() {
        List<Integer> integerSet = List.of(1, 2, 3, 4, 5, 6, 7, 8);
        System.out.println(integerSet);
    }
    @Test
    public void testMap() {
        Map<String, String> stringMap = Map.of("k1", "v1", "k2", "v2", "k3", "v3");
        System.out.println(stringMap);
        Map.Entry<String, String> entry1 = Map.entry("k1", "v1");
        Map.Entry<String, String> entry2 = Map.entry("k11", "v11");
        Map.Entry<String, String> entry3 = Map.entry("k12", "v12");
        Map<String, String> mapOfEntries = Map.ofEntries(entry1, entry2, entry3);
        System.out.println(mapOfEntries);
    }
    @Test
    public void testStream1() {
        Optional<Integer> integerOptional = Stream.ofNullable(Integer.valueOf("1232")).findAny();
        System.out.println(integerOptional.get());
    }
    @Test
    public void testStream2() {
        Stream.of(1, 2, 3, 4, 5, 6).dropWhile(x -> x == 6)/*.takeWhile(x -> x == 2)*/.forEach(System.out::println);
    }
    @Test
    public void testStream3() {
        IntStream.of(1, 2, 3, 4, 5, 6).forEach(System.out::println);
    }
    @Test
    public void testStream4() {
        IntStream.iterate(1, i -> i < 10, i -> i + 2).forEach(System.out::println);
    }
//    @Test
//    public void testFlow() {
//        Flow.Processor
//    }
}

Java9集合類中重載多個(gè)of方法原因

在java9 api的集合類中,有很多看似一樣的重載of方法:

在這里插入圖片描述

那這里有個(gè)問題是為什么有了VarArgs(可變長(zhǎng)參數(shù))方法,還需要定義那么多重載的方法呢?查看官方的更新日志中可以發(fā)現(xiàn)

有如下描述

http://openjdk.java.net/jeps/269

These will include varargs overloads, so that there is no fixed limit on the collection size. However, the collection instances so created may be tuned for smaller sizes. Special-case APIs (fixed-argument overloads) for up to ten of elements will be provided. While this introduces some clutter in the API, it avoids array allocation, initialization, and garbage collection overhead that is incurred by varargs calls. Significantly, the source code of the call site is the same regardless of whether a fixed-arg or varargs overload is called.

大致得意思是,雖然重載了這么多of方法會(huì)造成api的混亂,但它避免了varargs調(diào)用引起的數(shù)組分配,初始化和垃圾收集開銷。因?yàn)楣潭▍?shù)的重載方法,返回的是一個(gè)immutable list(不可變集合)。

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

相關(guān)文章

  • Java開發(fā)神器Lombok安裝與使用詳解

    Java開發(fā)神器Lombok安裝與使用詳解

    Lombok的安裝分兩部分:Idea插件的安裝和maven中pom文件的導(dǎo)入,本文重點(diǎn)給大家介紹Java開發(fā)神器Lombok安裝與使用詳解,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • SocketIo+SpringMvc實(shí)現(xiàn)文件的上傳下載功能

    SocketIo+SpringMvc實(shí)現(xiàn)文件的上傳下載功能

    這篇文章主要介紹了SocketIo+SpringMvc實(shí)現(xiàn)文件的上傳下載功能,socketIo不僅可以用來做聊天工具,也可以實(shí)現(xiàn)局域網(wǎng)。文中給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2018-08-08
  • Elasticsearch?percolate?查詢示例詳解

    Elasticsearch?percolate?查詢示例詳解

    這篇文章主要為大家介紹了Elasticsearch?percolate?查詢示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Java接口和抽象類有什么區(qū)別

    Java接口和抽象類有什么區(qū)別

    這篇文章主要介紹了Java接口和抽象類有什么區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java中map和flatMap的區(qū)別舉例詳解

    Java中map和flatMap的區(qū)別舉例詳解

    這篇文章主要給大家介紹了關(guān)于Java中map和flatMap區(qū)別的相關(guān)資料,在Java中Stream接口有map()和flatmap()方法,兩者都有中間流操作,并返回另一個(gè)流作為方法輸出,需要的朋友可以參考下
    2023-10-10
  • 基于FileNotFoundException問題的解決

    基于FileNotFoundException問題的解決

    這篇文章主要介紹了基于FileNotFoundException問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求

    Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求

    這篇文章主要介紹了Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Spring Cloud Hystrix入門和Hystrix命令原理分析

    Spring Cloud Hystrix入門和Hystrix命令原理分析

    這篇文章主要介紹了Spring Cloud Hystrix入門和Hystrix命令原理分析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • springboot war包部署過程詳解

    springboot war包部署過程詳解

    這篇文章主要為大家介紹了springboot war包部署過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Spring MVC參數(shù)傳遞中文亂碼解決方法分享

    Spring MVC參數(shù)傳遞中文亂碼解決方法分享

    這篇文章主要介紹了Spring MVC參數(shù)傳遞中文亂碼解決方法分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12

最新評(píng)論

西藏| 阿合奇县| 临泉县| 龙口市| 江永县| 留坝县| 南平市| 黄冈市| 理塘县| 县级市| 交口县| 呼玛县| 张家港市| 苏州市| 社会| 延川县| 岱山县| 青川县| 乌兰浩特市| 桂东县| 永昌县| 遂宁市| 巴南区| 航空| 泰兴市| 凯里市| 景泰县| 宜阳县| 安丘市| 增城市| 思南县| 施甸县| 旺苍县| 广昌县| 长海县| 广丰县| 长泰县| 岳西县| 惠东县| 石门县| 平度市|