java 在 array 和 set 之间进行转换的示例-kb88凯时官网登录

来自:网络
时间:2023-05-17
阅读:
免费资源网 - https://freexyz.cn/
目录

概述

在本文章中,我们对如何在 java 中对 array 和 set 进行转换进行一些说明和示例。

这些示例通过使用 core java 和一些第三方的转换工具,例如 guava 和 apache commons collections。

从 list 转换为 set

使用原生 java 代码

让我们首先来看看如何在原生 java 中把数组转换为 set。

通过下面的代码,我们了解到首先需要把 array 转换为 list,然后再把这个 list 转换为 set。

@test
public void givenusingcorejavav1_whenarrayconvertedtoset_thencorrect() {
    integer[] sourcearray = { 0, 1, 2, 3, 4, 5 };
    set targetset = new hashset(arrays.aslist(sourcearray));
}

可选的,我们可以首先定义一个 set 对象,然后把这个 set 对象的元素进行填充:

@test
public void givenusingcorejavav2_whenarrayconvertedtoset_thencorrect() {
    integer[] sourcearray = { 0, 1, 2, 3, 4, 5 };
    set targetset = new hashset();
    collections.addall(targetset, sourcearray);
}

使用 guava

我们可以使用 guava 转换工具来把数组给出的数组来进行初始化。

@test
public void givenusingguava_whenarrayconvertedtoset_thencorrect() {
    integer[] sourcearray = { 0, 1, 2, 3, 4, 5 };
    set targetset = sets.newhashset(sourcearray);
}

使用 apache commons collections

最后我们可以使用 apache 的 commons collection 的库来进行处理。

这个处理方法和我们使用原生 java 代码差不多,首先需要对 set 进行初始化,然后再把 set 中的元素进行填充。

@test
public void givenusingcommonscollections_whenarrayconvertedtoset_thencorrect() {
    integer[] sourcearray = { 0, 1, 2, 3, 4, 5 };
    set targetset = new hashset<>(6);
    collectionutils.addall(targetset, sourcearray);
}

从 set 转换为 array

使用原生 java

set 中有一个 toarray 的方法,你可以直接使用这个方法来把给出的 set 转换为 array。

@test
public void givenusingcorejava_whensetconvertedtoarray_thencorrect() {
    set sourceset = sets.newhashset(0, 1, 2, 3, 4, 5);
    integer[] targetarray = sourceset.toarray(new integer[0]);
}

需要注意的是,我们在这里使用了 toarray(new t[0]) 来对变量进行初始化,相对使用 toarray(new t[size]) 这个方法。

使用 toarray(new t[0]) 来对数组进行初始化更加安全,快速,易读。

使用 guava

下一步,让我们来使用 guava 的 api 来进行转换。

@test
public void givenusingguava_whensetconvertedtoarray_thencorrect() {
    set sourceset = sets.newhashset(0, 1, 2, 3, 4, 5);
    int[] targetarray = ints.toarray(sourceset);
}

ints 中有一个 toarray 的方法,这个方法将会把整数类型的 list 转换为 array。

需要注意的是 ints 的类型需要和数组中的类型进行匹配才可以。

结论

在 java 的集合类型直接进行转换是我们需要经常进行操作的方法和需求。

guava 的方法 sets 中通常能够对 set 进行比较好的操作,包括对 set 的对象进行初始化。

我们可以用这个对象中的初始化参数来对数组转换为 set。

使用 commons collections 还是有点晦涩。

免费资源网 - https://freexyz.cn/
返回顶部
顶部
网站地图