迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中将集合转换为列表

作者:迹忆客 最近更新:2023/10/16 浏览次数:

本文将介绍和讨论在 Java 中将集合转换为列表的不同方法。


在 Java 中使用构造函数将集合转换为列表

我们可以使用构造函数,并在参数中提供我们要转换的集合。

语法:

List<Generic> listname = new ArrayList<>(collectionName);

例子:

import java.util.*;
public class ExpHStoLL
{
    public static void main(String[] args)
    {
        Set<String> hs = new HashSet<String>();
        //Adding names in hs
        hs.add("Dhruv");
        hs.add("Sahil");
        hs.add("Ajay");
        System.out.println("Hash Set Collection :"+hs);

        //Using constructor of hs for linked list
        List<String> MyList = new LinkedList<String>(hs);
        System.out.println ("\nLinked List after conversion: " + MyList);
    }
}

输出:

Hash Set Collection :[Dhruv, Sahil, Ajay]
Linked List after conversion: [Dhruv, Sahil, Ajay]

在这里,我们创建了一个名称的散列集,然后使用构造函数 hs 从散列集创建一个列表。


在 Java 中使用内置函数将集合转换为列表

在 Array 和 Collections 类中有两种内置方法可以将集合转换为列表。

在 Java 中使用 asList 将集合转换为列表

Array 类提供了 asList() 方法来将数组集合转换为列表。

语法:

List<Generic> MyList = Arrays.asList(ArrayName);

例子:

import java.util.*;
public class ExpArrtoL
{
    public static void main(String args[])
    {
        String[] MyArray = { "Dhruv", "Sahil", "Ajay" };
        System.out.println("My Array: " + Arrays.toString(MyArray));

        //Using asList function
        List<String> MyList = Arrays.asList(MyArray);
        System.out.println("List using asList(): " + MyList);
    }
}

输出:

My Array: [Dhruv, Sahil, Ajay]
List using asList(): [Dhruv, Sahil, Ajay]

在上面的代码中,我们创建了一个数组,然后使用数组名称为 MyArrayasList() 函数作为参数将集合转换为列表。

在 Java 中使用 addAll 将集合转换为列表

addAll() 是集合框架中提供的一个方法,我们可以使用它来将集合转换为列表。集合中的元素可以一一指定,也可以指定为数组。

这类似于 asList() 方法,但性能更好,有效地提高了时间复杂度。在使用此方法之前,我们必须同时创建一个数组和一个列表,因为它需要两个参数才能将项目从集合复制到列表。

语法:

Collections.addAll(ListName, ArrayName);

例子:

import java.util.*;
public class ExpArrtoL
{
    public static void main(String args[])
    {
        String[] MyArray = { "Dhruv", "Sahil", "Ajay" };
        System.out.println("My Array: " + Arrays.toString(MyArray));
        List<String> MyList = new ArrayList<>();

        //Using addAll function
        Collections.addAll(MyList, MyArray);
        System.out.println("List using addAll(): " + MyList);
    }
}

输出:

My Array: [Dhruv, Sahil, Ajay]
List using addAll(): [Dhruv, Sahil, Ajay]

在 Java 中使用 for 循环将集合转换为列表

如果我们不想使用构造函数或内置函数,for-each 循环可以帮助将集合转换为列表。这种方法对初学者很友好,因为它提供了一种简单的转换方式。

例子:

import java.util.*;
public class ListUsingForLoop
{
    public static void main(String[] args)
    {
        Set<String> hs = new HashSet<String>();
        hs.add("Dhruv");
        hs.add("Sahil");
        hs.add("Ajay");
        System.out.println("Our HashSet HS:"+hs);

        //List of the same size as our HashSet hs
        List<String> MyList = new ArrayList<String>(hs.size());

        //The loop picks each string of HS and adds it to the List
        for (String x : hs)
        MyList.add(x);
        System.out.println("\nList made from HS:" + MyList);
    }
}

输出:

Our HashSet HS:[Dhruv, Sahil, Ajay]

List made from HS:[Dhruv, Sahil, Ajay]

在这里,我们创建了一个名称的散列集,并将它们用于每个循环,以指定对于散列集 hs 中找到的每个字符串,我们将字符串添加到我们的列表 MyList 中。


在 Java 中使用 collect 将集合转换为列表

我们还可以使用流的 collect() 函数将集合转换为列表并显示结果,而无需编辑原始集合。

collect() 方法从数据结构或集合中收集元素,并为操作它们提供额外的逻辑。

语法:

List<Generic> ListName = CollectionName.stream().collect(toList());

例子:

import java.util.*;
import java.util.stream.*;
public class ExpHStoLL
{
    public static void main(String[] args)
    {
        Set<String> hs = new HashSet<String>();
        //Adding names in hs
        hs.add("Dhruv");
        hs.add("Sahil");
        hs.add("Ajay");
        System.out.println("Hash Set Collection :"+hs);

        List<String> MyList = hs.stream().collect(Collectors.toList());
        System.out.println ("\nConverted to List: " + MyList);
    }
}

输出:

Hash Set Collection :[Dhruv, Sahil, Ajay]
Converted to List: [Dhruv, Sahil, Ajay]

在使用流 API 的 collect() 方法将集合转换为列表时,复制是使用引用完成的。

由于列表是一种引用数据类型,即它存储了实际对象或元素的引用地址,因此对列表的任何更改也会改变我们的集合。

从原始集合创建的副本列表是浅副本。这意味着删除列表也会从原始集合中删除元素。

我们可以通过创建深拷贝来避免这种情况,其中将集合复制到列表会导致为列表分配新的内存,而不仅仅是复制旧的引用。

上一篇:在 Java 中将 Stream 转换为列表

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Java 中将 Stream 转换为列表

发布时间:2023/10/16 浏览次数:151 分类:Java

本文介绍 Java 中 Stream 到 List 的转换。本教程介绍了 Java 中 Stream 到 List 的转换。Stream 是对象的集合。Stream 不存储任何数据,因此它不是数据结构。

在 Java 中将 map 值转换为列表

发布时间:2023/10/16 浏览次数:104 分类:Java

在本教程中,我们将执行三个程序来向你展示如何将 Hashmap 值转换为 Java 中的列表。所有示例都是动态的,并且包含构建可靠逻辑的有用方法。

在 Java 中将列表转换为 map

发布时间:2023/10/11 浏览次数:150 分类:Java

本教程介绍如何在 Java 中将列表转换为 mapList 允许维护有序的对象集合。Map 对象将键映射到值。在 Java 中,有几种方法可以将对象的 List 转换为 Map。在本文中,我们将学习其中的一些。

在 Java 中按字母顺序对列表进行排序

发布时间:2023/10/11 浏览次数:80 分类:Java

本文介绍如何在 Java 中按字母顺序对列表进行排序。本教程介绍如何在 Java 中按字母顺序对元素列表进行排序。List 是一种线性数据类型,用于在 Java 中存储类似类型的元素。

Java 中的未经检查的强制转换

发布时间:2023/10/11 浏览次数:50 分类:Java

这篇文章解释了 Java 中的 unchecked cast 警告。Java 是一种强制类型安全的编程语言,这意味着我们应该始终指定我们将要存储或使用的数据类型,并且不能在其中存储不兼容的类型。

如何在 Java 中检查变量的类型

发布时间:2023/10/11 浏览次数:154 分类:Java

本文介绍了 Java 中检查变量类型的方法。在Java中,了解变量或对象的类型对于编写高效且灵活的代码至关重要。

在 Java 中使用后缀 F

发布时间:2023/10/11 浏览次数:136 分类:Java

本教程演示了在 Java 中使用带有数值的 f 后缀。Java 中的十进制值默认是 double 值。当我们只需要浮点值时,我们必须告诉编译器它是一个浮点值。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便