迹忆客 专注技术分享

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

在 Java 中将 ArrayList 转换为 Set

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

ArrayList 是 List 接口的实现类,用于以线性顺序存储数据,而 set 是具有 HashSet 类来存储数据的接口。这两者之间的主要区别是 HashSet 不允许重复元素并存储唯一元素。

本篇文章将介绍将 ArrayList 转换为 HashSet 的不同方法。


在 Java 中使用 Naive 方法将 ArrayList 转换为 HashSet

这是将列表转换为集合的最基本方法。

在这种方法中,我们首先声明一个空集。然后我们遍历列表并使用 HashSet.add() 方法将其元素一一添加到集合中。当循环终止时,列表被转换为一个集合。

看看下面的代码。

import java.util.*;
public class SimpleTesting {
	public static void main(String args[]) {
		// initialise a list
		List<String> list = Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
		//intialise a set
		Set<String> set  = new HashSet<String>();
		// apply for loop
		for(String ele : list){
			set.add(ele);
		}
		// display the set
		for(String ele : set){
			System.out.println(ele);
		}
	}
}

输出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

在上面的代码中,我们创建了一个存储一些名称的列表。我们还初始化了一个名为 set 的空 Set。

然后我们遍历列表并添加其元素以一一设置。最后,我们打印集合的元素。请注意如何消除列表中的重复元素。


使用 Java 中的构造函数将 ArrayList 转换为 HashSet

这种方法是所有方法中最简单的。在这种方法中,我们将需要转换的列表传递给 HashSet 类的构造函数。

这消除了之前方法中所需的 for 循环的需要。构造函数返回一个包含所有唯一元素的新集合。

看看下面的代码。

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class SimpleTesting {

	public static void main(String args[])
	{
		// initialise a list
		List<String> list = Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
		//intialise a set
		Set<String> set  = new HashSet<String>(list);

		// display the set
		for(String ele : set){
			System.out.println(ele);
		}
	}
}

输出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

在上面的代码中,我们创建了一个存储一些名称的列表。我们还初始化了一个名为 set 的空 Set。

我们将列表作为参数传递给 HashMap 的构造函数。最后,我们打印集合的元素。请注意如何消除列表中的重复元素。


使用 Java 8 Stream API 将 ArrayList 转换为 HashSet

在这种方法中,我们使用 Java 8 Stream API 将 ArrayList 转换为 HashSet。我们首先将列表转换为流。然后我们将 collect 函数应用于流。

为了转换成一个集合,我们在 collect 操作中使用 Collectors.toSet() 函数来获取一个集合。看看下面的代码。

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class SimpleTesting {

	public static void main(String args[])
	{
		 // initialise a list
        List<String> list = Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
        //intialise a set using stream
        Set<String> set  = list.stream().collect(Collectors.toSet());
        
        // display the set
        for(String ele : set){
            System.out.println(ele);
        }
	}
}

输出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

我们使用上面代码中的 List.stream() 函数将列表转换为流。我们将 collect 操作应用于流并将 Collectors.toSet() 方法作为参数传递。

这导致将流转换为集合。然后我们将这个集合存储在变量集合中。


使用 Java 中的 Set.copyOf() 方法将 ArrayList 转换为 HashSet

Java 10 提供了一个 Set.copyof() 方法,该方法将 Collection 作为其参数并返回一个包含给定 Collection 元素的不可变集合。在这种方法中,我们使用 Set.copyOf() 方法将 ArrayList 转换为 HashSet。

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class SimpleTesting {
	public static void main(String args[])
	{
		// initialise a list
        List<String> list = Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
        //intialise a set 
        Set<String> set  = Set.copyOf(list);        
        // display the set
        for(String ele : set){
            System.out.println(ele);
        }
	}
}

输出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

在 Java 中使用 Apache Commons 集合库将 ArrayList 转换为 HashSet

如果你正在使用 Apache Commons Collection 库,请使用带有两个参数的 CollectionUtils.addAll() 方法:目标集合对象和源集合对象。

源集合对象的值被复制到目标集合对象中并创建一个集合。看看下面的代码。

此代码使用 Apache 公共库的依赖代码。首先,将此依赖项添加到你的 Java 项目中以成功执行此代码。

<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>
import java.util.*;
public class SimpleTesting {
    public static void main(String args[]) {
        // initialise a list
        List<String> sourcelist = Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
        //intialise a set 
        Set<String> targetset  = new HashSet<String>();        
        // Adding elements
        CollectionUtils.addAll(targetset, sourcelist);        
        // display the set
        for(String ele : targetset){
            System.out.println(ele);
        }
     }
}

输出:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

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

本文地址:

相关文章

Java 中的纸牌洗牌

发布时间:2023/05/16 浏览次数:72 分类:Java

本文介绍如何在 Java 中洗一副牌。使用 Java 中的传统循环打乱 ArrayList。类似地,在 Java 中,各种方法允许用户随机播放元素。下面是演示此过程的代码块。

Java 中将列表转换为 ArrayList

发布时间:2023/05/16 浏览次数:155 分类:Java

在 Java 中将 List 转换为 ArrayList 的方法。在本篇文章中,我们讨论了如何在 Java 中将列表转换为 ArrayList。

Java 中 ArrayList 和 LinkedList 的区别

发布时间:2023/05/16 浏览次数:126 分类:Java

本文介绍 Java 中 ArrayList 和 LinkedList 的区别。ArrayList 和 LinkedList 都用于存储数据,但由于实现类型的不同而存在一些差异。

Java 中将字节转换为整数

发布时间:2023/05/16 浏览次数:139 分类:Java

本文重点介绍如何使用 Byte Wrapper Class 和 Casting 在 Java 中将字节转换为 int 数据类型。字节数据类型定义为 8 位有符号二进制补码整数,而 int 数据类型可归类为 32 位有符号二进制补码整数。除

Java 中必须捕获或声明抛出未报告的异常

发布时间:2023/05/16 浏览次数:183 分类:Java

本文将介绍未报告的异常必须被捕获或声明为在 Java 中抛出的编译时错误。Java 是一种面向对象的强类型编译语言,具有类的概念来利用编程的不同方面,如继承和多态性。 它还很好地支持处理

Java 中 Identifier Expected Error 错误

发布时间:2023/05/16 浏览次数:166 分类:Java

在本文中,我们将了解 Java 的 <identifier> 预期错误。了解 Java 中的 <identifier> 预期错误 <identifier> 预期是新手程序员面临的最常见的 Java 编译时错误。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便