arrlist 去重
时间: 2024-12-24 07:12:21 浏览: 5
ArrayList去重通常可以使用多种方法,这里列举几种常见的做法:
1. **遍历法**:
使用Set数据结构,因为Set不允许有重复元素。将ArrayList转换为HashSet,再转回ArrayList即可去除重复项。示例代码如下:
```java
ArrayList<String> uniqueList = new ArrayList<>(new HashSet<>(arrlist));
```
2. **使用流(Stream API)**:
Java 8引入了Stream API,可以简洁地实现去重:
```java
ArrayList<String> uniqueList = arrlist.stream()
.distinct() // 去除重复
.collect(Collectors.toList());
```
3. **自定义比较器(Comparator)**:
如果需要按某个字段进行去重,可以创建一个Comparator,并配合Collections.sort和TreeMap:
```java
Map<String, String> map = new TreeMap<>();
for (String item : arrlist) {
if (!map.containsKey(item)) {
map.put(item, item);
}
}
uniqueList = new ArrayList<>(map.values());
```
4. **使用HashMap存储键值对**:
对于简单的数据结构,可以直接通过HashMap存储并保持唯一键值,最后取键作为去重后的列表:
```java
HashMap<String, Boolean> existsMap = new HashMap<>();
ArrayList<String> uniqueList = arrlist.stream()
.filter(key -> !existsMap.putIfAbsent(key, true))
.collect(Collectors.toList());
```
阅读全文