Java list去重
时间: 2023-06-28 15:06:56 浏览: 122
Java中的List可以通过Set集合进行去重,以下是示例代码:
```
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("A");
list.add("B");
Set<String> set = new HashSet<>(list);
list.clear();
list.addAll(set);
System.out.println(list); // 输出 [A, B, C]
```
这里先将List转为Set进行去重,然后再将Set转回List。需要注意的是,这种去重方式会打乱原来的元素顺序,如果需要保持原来的顺序,可以使用LinkedHashSet代替HashSet。
相关问题
java list去重
在Java中,可以使用java.util包中的HashSet类来去除List中的重复元素。HashSet是基于HashMap实现的,它不允许重复元素存在,当向HashSet中添加重复元素时,HashSet会自动将重复元素去重。具体代码如下:
```
List<Integer> originalList = new ArrayList<>(Arrays.asList(1, 2, 2, 3, 3, 4, 5, 5));
Set<Integer> set = new HashSet<>(originalList);
List<Integer> newList = new ArrayList<>(set);
System.out.println(newList);
```
输出结果为:
```
[1, 2, 3, 4, 5]
```
另外,如果要保留List中元素的顺序,可以使用LinkedHashSet,它会按照元素添加的顺序来保留元素。具体代码如下:
```
List<Integer> originalList = new ArrayList<>(Arrays.asList(1, 2, 2, 3, 3, 4, 5, 5));
Set<Integer> set = new LinkedHashSet<>(originalList);
List<Integer> newList = new ArrayList<>(set);
System.out.println(newList);
```
输出结果为:
```
[1, 2, 3, 4, 5]
```
java List去重
在Java中,List是一个有序集合,它允许存储重复元素。如果你想要从List中去除重复的元素,有几种常见的方法:
1. 使用Set:Set不允许有重复元素,你可以将List转换为Set,然后再转换回List,这样就自动去除了重复项。例如:
```java
List<String> list = ...;
Set<String> uniqueList = new HashSet<>(list);
list.clear(); // 清空原来的list
list.addAll(uniqueList);
```
2. 自定义迭代:遍历List,使用HashSet或LinkedHashSet作为临时存储,只添加未见过的元素到新的List中。因为HashSet不保证顺序,所以如果需要保持原始插入顺序,可以使用LinkedHashSet。
```java
List<String> list = ...;
List<String> deduplicatedList = new ArrayList<>();
for (String item : list) {
if (!deduplicatedList.contains(item)) {
deduplicatedList.add(item);
}
}
```
3. 利用Java 8 Stream API:Stream API提供了一个简洁的方式来处理这种操作,通过`distinct()`方法消除重复。
```java
List<String> list = ...;
List<String> uniqueList = list.stream()
.distinct() // 去重
.collect(Collectors.toList());
```
阅读全文