jdk 1.6 list<Map>去重
时间: 2023-12-12 13:03:09 浏览: 141
你可以使用Java 1.6中的HashSet来去重一个List<Map>。HashSet在添加元素时,会自动去重,因此可以方便地去除List中的重复元素。下面是一个示例代码:
```java
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
// 假设list已经被填充了一些数据
Set<Map<String, Object>> set = new HashSet<Map<String, Object>>(list);
list.clear();
list.addAll(set);
// 现在list中的元素已经被去重了
```
在上面的代码中,我们先将List转换为HashSet,再将Set转换回List,这样就可以去重List中的元素。注意,在转换为HashSet时,需要提供一个List作为构造函数的参数。这样做的原因是HashSet的构造函数中需要一个Collection类型的参数,而List是Collection的子类,因此可以直接传递List作为参数。
相关问题
jdk8 List<Long> idList 转List<String>
在Java 8中,如果你有一个`List<Long>`类型的idList,想要转换成`List<String>`,你可以通过流(Stream)或者Lambda表达式来实现。以下是两种常见的方法:
1. 使用流(Stream)
```java
List<Long> idList = ...; // 假设这是已有的Long列表
List<String> stringList = idList.stream()
.map(Long::toString) // 将每个Long转为String
.collect(Collectors.toList()); // 收集到新的List<String>
```
2. 使用Lambda表达式
```java
List<Long> idList = ...;
List<String> stringList = idList.stream()
.map(id -> String.valueOf(id)) // 直接将Long转换为String
.collect(Collectors.toList());
```
这里的关键点在于`map()`函数,它接受一个函数作为参数,对列表中的每个元素应用这个函数,这里是将每个`Long`值转换为`String`。
jdk8 list<entity> 多字段分组
在 Java 8 中,可以使用 `Collectors.groupingBy` 方法进行多字段分组。
如果你有一个实体类 `Entity`,其中包含多个字段,例如 `field1` 和 `field2`,你可以通过以下代码对列表进行分组:
```java
Map<String, Map<String, List<Entity>>> groupedEntities = entities.stream()
.collect(Collectors.groupingBy(Entity::getField1,
Collectors.groupingBy(Entity::getField2)));
```
这将返回一个 `Map`,其中第一个键是 `field1` 的值,第二个键是 `field2` 的值,值是具有相应 `field1` 和 `field2` 值的 `Entity` 对象的列表。
阅读全文