如何使用 Java 8 从数组列表中获取唯一值?
原文:https://www . geesforgeks . org/如何使用-java-8/ 从数组列表中获取唯一值
Java 中的数组列表不防止列表有重复值。但是如果你想从数组列表中获得唯一的值,有几种方法,每种方法都用一个例子来解释。
方法 1(使用 Stream API 的 distinct()方法):对于 Java 8,可以使用 Java 8 Stream API。为了获得不同的值, distinct() 方法是一个中间操作,它也过滤流以通过下一个操作。Java Stream collect() 用于将流元素收集到一个集合中(在本例中是一个列表)。
语法:
Stream<T> distinct()
返回类型:流是一个接口和函数。它返回一个由不同元素组成的流。
Java 语言(一种计算机语言,尤用于创建网站)
// Java program to demonstrate
// how to Get Unique Values from ArrayList
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args)
{
// Create ArrayList of Integers
ArrayList<Integer> Numbers
= new ArrayList<Integer>();
// add elements to ArrayList
Numbers.add(1);
Numbers.add(2);
Numbers.add(1);
Numbers.add(4);
Numbers.add(2);
List<Integer> UniqueNumbers
= Numbers.stream().distinct().collect(
Collectors.toList());
System.out.println("Unique Values of ArrayList");
// iterate through List
for (int i = 0; i < UniqueNumbers.size(); ++i) {
System.out.println(UniqueNumbers.get(i));
}
}
}
Output
Unique Values of ArrayList
1
2
4
方法 2(使用 HashSet): 可以将数组列表转换为不允许重复值的 HashSet 。对于转换,使用接受集合作为参数的 HashSet 类的构造函数。
Java 语言(一种计算机语言,尤用于创建网站)
// Java program to demonstrate
// how to Get Unique Values from ArrayList
import java.util.ArrayList;
import java.util.HashSet;
public class Main {
public static void main(String[] args)
{
// Create ArrayList of Integer
ArrayList<Integer> Numbers
= new ArrayList<Integer>();
// add elements to ArrayList
Numbers.add(1);
Numbers.add(2);
Numbers.add(1);
Numbers.add(4);
Numbers.add(2);
/*Converting List to HashSet using constructor.
*/
HashSet<Integer> hashSetNumbers
= new HashSet<Integer>(Numbers);
System.out.println("Unique Values of ArrayList");
// iterate through HashSet
for (Integer strNumber : hashSetNumbers)
System.out.println(strNumber);
}
}
Output
Unique Values of ArrayList
1
2
4
保持数组列表中没有重复元素插入的顺序。
LinkedHashSet 是 HashSet 的一个有序版本,在所有元素之间维护一个双向链表。让我们按照元素被插入的顺序迭代它们。下面是保持插入顺序并且不允许重复元素的代码。
Java 语言(一种计算机语言,尤用于创建网站)
// Maintaining order with no duplicate elements insertion in
// the ArrayList.
import java.util.*;
public class Main {
public static void main(String[] args)
{
// Using LinkedHashSet we can prevent
// insertion of duplicate elements
// as it implements the Set interface
LinkedHashSet<Integer> UniqueList
= new LinkedHashSet<Integer>();
// Adding elements to LinkedHashSet
UniqueList.add(1);
UniqueList.add(2);
UniqueList.add(3);
UniqueList.add(3); // duplicate 3 wont be inserted
UniqueList.add(2); // duplicate 2 wont be inserted
// Converting LinkedHashSet to List
List<Integer> ls
= new ArrayList<Integer>(UniqueList);
// Printing list
System.out.println(ls);
}
}
Output
[1, 2, 3]
版权属于:月萌API www.moonapi.com,转载请注明出处