在 Java 中将集合转换为列表
本文将介绍和讨论在 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]
在上面的代码中,我们创建了一个数组,然后使用数组名称为 MyArray
的 asList()
函数作为参数将集合转换为列表。
在 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 中延迟几秒钟的时间
发布时间:2023/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,