java8 去掉 List<String>重复项
时间: 2024-06-09 08:09:47 浏览: 61
可以使用 Java 8 的 Stream API 来去掉 List<String> 中的重复项,具体实现可以参考下面的代码:
```java
List<String> list = Arrays.asList("apple", "banana", "orange", "apple", "orange");
List<String> distinctList = list.stream().distinct().collect(Collectors.toList());
```
上述代码中,首先我们创建了一个包含重复项的 List<String>,然后使用 stream() 方法将其转换为 Java 8 中的 Stream 对象。接着,我们调用 distinct() 方法来去掉重复项,最后使用 collect() 方法将去重后的 Stream 转换为 List<String> 对象。
执行上述代码后,得到的 distinctList 就是去重后的 List<String> 对象,它的内容为 ["apple", "banana", "orange"]。
相关问题
Java 一个List<String> 它是有多个以,隔开的字符串组成,我需要将这个list中字符串变为另一个List<String> 并且元素不能重复
你可以使用Java的Stream API和split()方法来实现这个需求。首先,将每个字符串按逗号拆分,并使用flatMap()将拆分后的字符串流合并为一个流。然后,使用distinct()方法去除重复元素,并将结果收集到一个新的List中。下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> originalList = Arrays.asList("A,B,C", "B,C,D", "C,D,E");
List<String> newList = originalList.stream()
.flatMap(str -> Arrays.stream(str.split(",")))
.distinct()
.collect(Collectors.toList());
System.out.println(newList);
}
}
```
输出结果:
```
[A, B, C, D, E]
```
在这个示例中,原始的List包含三个字符串,每个字符串以逗号分隔。使用flatMap()将它们拆分为单独的字符串流,然后使用distinct()方法去除重复元素。最后,使用collect()方法将结果收集到一个新的List中。
java List<String>str1,List<String>str2.求相同的数据
以下是Java中求两个List<String>中相同数据的方法:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
List<String> str1 = new ArrayList<>();
str1.add("1");
str1.add("2");
str1.add("3");
List<String> str2 = new ArrayList<>();
str2.add("2");
str2.add("3");
str2.add("4");
Set<String> commonElements = new HashSet<>(str1);
commonElements.retainAll(str2);
System.out.println("相同的数据为:" + commonElements);
}
}
```
这段代码中,我们首先创建了两个List<String>对象str1和str2,并分别添加了一些元素。然后,我们使用HashSet将str1中的元素存储起来,这样可以去除重复的元素。接下来,我们使用retainAll()方法来获取str1和str2中相同的元素,将结果存储在commonElements集合中。最后,我们打印出commonElements集合中的元素,即为两个List中相同的数据。
阅读全文