亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java?在?Array?和?Set?之間進(jìn)行轉(zhuǎn)換的示例

 更新時(shí)間:2023年05月10日 08:49:54   作者:huyuchengus  
這篇文章主要介紹了Java如何在Array和Set之間進(jìn)行轉(zhuǎn)換,在本文章中,我們對(duì)如何在?Java?中對(duì)Array和Set進(jìn)行轉(zhuǎn)換進(jìn)行一些說(shuō)明和示例,需要的朋友可以參考下

概述

在本文章中,我們對(duì)如何在 Java 中對(duì) Array 和 Set 進(jìn)行轉(zhuǎn)換進(jìn)行一些說(shuō)明和示例。

這些示例通過(guò)使用 Core Java 和一些第三方的轉(zhuǎn)換工具,例如 Guava 和 Apache Commons Collections。

從 List 轉(zhuǎn)換為 Set

使用原生 Java 代碼

讓我們首先來(lái)看看如何在原生 Java 中把數(shù)組轉(zhuǎn)換為 Set。

通過(guò)下面的代碼,我們了解到首先需要把 Array 轉(zhuǎn)換為 List,然后再把這個(gè) List 轉(zhuǎn)換為 Set。

@Test
public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set<Integer> targetSet = new HashSet<Integer>(Arrays.asList(sourceArray));
}

可選的,我們可以首先定義一個(gè) Set 對(duì)象,然后把這個(gè) Set 對(duì)象的元素進(jìn)行填充:

@Test
public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set<Integer> targetSet = new HashSet<Integer>();
    Collections.addAll(targetSet, sourceArray);
}

使用 Guava

我們可以使用 Guava 轉(zhuǎn)換工具來(lái)把數(shù)組給出的數(shù)組來(lái)進(jìn)行初始化。

@Test
public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set<Integer> targetSet = Sets.newHashSet(sourceArray);
}

使用 Apache Commons Collections

最后我們可以使用 Apache 的 Commons Collection 的庫(kù)來(lái)進(jìn)行處理。

這個(gè)處理方法和我們使用原生 Java 代碼差不多,首先需要對(duì) Set 進(jìn)行初始化,然后再把 Set 中的元素進(jìn)行填充。

@Test
public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect() {
    Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
    Set<Integer> targetSet = new HashSet<>(6);
    CollectionUtils.addAll(targetSet, sourceArray);
}

從 Set 轉(zhuǎn)換為 Array

使用原生 Java

Set 中有一個(gè) toArray 的方法,你可以直接使用這個(gè)方法來(lái)把給出的 Set 轉(zhuǎn)換為 Array。

@Test
public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect() {
    Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
    Integer[] targetArray = sourceSet.toArray(new Integer[0]);
}

需要注意的是,我們?cè)谶@里使用了 toArray(new T[0]) 來(lái)對(duì)變量進(jìn)行初始化,相對(duì)使用 toArray(new T[size]) 這個(gè)方法。

使用 toArray(new T[0]) 來(lái)對(duì)數(shù)組進(jìn)行初始化更加安全,快速,易讀。

使用 Guava

下一步,讓我們來(lái)使用 Guava 的 API 來(lái)進(jìn)行轉(zhuǎn)換。

@Test
public void givenUsingGuava_whenSetConvertedToArray_thenCorrect() {
    Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
    int[] targetArray = Ints.toArray(sourceSet);
}

Ints 中有一個(gè) toArray 的方法,這個(gè)方法將會(huì)把整數(shù)類(lèi)型的 List 轉(zhuǎn)換為 Array。

需要注意的是 Ints 的類(lèi)型需要和數(shù)組中的類(lèi)型進(jìn)行匹配才可以。

結(jié)論

在 Java 的集合類(lèi)型直接進(jìn)行轉(zhuǎn)換是我們需要經(jīng)常進(jìn)行操作的方法和需求。

Guava 的方法 Sets 中通常能夠?qū)?Set 進(jìn)行比較好的操作,包括對(duì) Set 的對(duì)象進(jìn)行初始化。

我們可以用這個(gè)對(duì)象中的初始化參數(shù)來(lái)對(duì)數(shù)組轉(zhuǎn)換為 Set。

使用 Commons Collections 還是有點(diǎn)晦澀。

到此這篇關(guān)于Java 如何在 Array 和 Set 之間進(jìn)行轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Java  Array 和 Set 轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis別名和settings設(shè)置方式

    MyBatis別名和settings設(shè)置方式

    這篇文章主要介紹了MyBatis別名和settings設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java List集合排序?qū)崿F(xiàn)方法解析

    Java List集合排序?qū)崿F(xiàn)方法解析

    這篇文章主要介紹了Java List集合排序?qū)崿F(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Java8 日期、時(shí)間操作代碼

    Java8 日期、時(shí)間操作代碼

    在Java8之前,日期時(shí)間API一直被開(kāi)發(fā)者詬病,包括:java.util.Date是可變類(lèi)型,SimpleDateFormat非線程安全等問(wèn)題。故此,Java8引入了一套全新的日期時(shí)間處理API,新的API基于ISO標(biāo)準(zhǔn)日歷系統(tǒng)
    2021-09-09
  • 教你在一分鐘之內(nèi)理解Java Lambda表達(dá)式并學(xué)會(huì)使用

    教你在一分鐘之內(nèi)理解Java Lambda表達(dá)式并學(xué)會(huì)使用

    今天給大家?guī)У奈恼率荍ava8新特性的相關(guān)知識(shí),文章圍繞著如何在一分鐘之內(nèi)理解Java Lambda表達(dá)式并學(xué)會(huì)使用展開(kāi),文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • Java 使用Thumbnails對(duì)大圖片壓縮

    Java 使用Thumbnails對(duì)大圖片壓縮

    這篇文章主要介紹了Java 使用Thumbnails對(duì)大圖片壓縮,幫助大家更好的利用Java處理圖片,感興趣的朋友可以了解下
    2020-11-11
  • java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)雙向鏈表功能

    java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)雙向鏈表功能

    這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)雙向鏈表功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 如何使用Docker部署Java項(xiàng)目

    如何使用Docker部署Java項(xiàng)目

    在接觸了docker后,干什么都想用docker來(lái)弄,這篇文章主要給大家介紹了關(guān)于如何使用Docker部署Java項(xiàng)目的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Java中的synchronized重量級(jí)鎖解析

    Java中的synchronized重量級(jí)鎖解析

    這篇文章主要介紹了Java中的synchronized重量級(jí)鎖解析,內(nèi)核需要去申請(qǐng)這個(gè)互斥量,必須要進(jìn)入內(nèi)核態(tài),也就是這里需要用戶態(tài),內(nèi)核態(tài)的切換,狀態(tài)的切換,開(kāi)銷(xiāo)是比較大的,這就是重型鎖的一個(gè)弊端,需要的朋友可以參考下
    2024-01-01
  • 快速了解JAVA中的Random()函數(shù)

    快速了解JAVA中的Random()函數(shù)

    這篇文章主要介紹了JAVA中的Random()函數(shù)的使用方法,文中代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • jackson json序列化實(shí)現(xiàn)首字母大寫(xiě),第二個(gè)字母需小寫(xiě)

    jackson json序列化實(shí)現(xiàn)首字母大寫(xiě),第二個(gè)字母需小寫(xiě)

    這篇文章主要介紹了jackson json序列化實(shí)現(xiàn)首字母大寫(xiě),第二個(gè)字母需小寫(xiě)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評(píng)論