java中有一个数组test,数组内存放实体类Public,Public有id,name等属性.如何将test数据去重
时间: 2023-02-08 19:52:07 浏览: 158
Java List中数据的去重
5星 · 资源好评率100%
在Java中,可以使用一些常用的方法来去除数组中的重复数据。
方法一: 使用Set
可以使用 Java 的 Set 接口来去重,因为 Set 中的元素是不可重复的。可以遍历数组,将数组中的元素添加到 Set 中,最后使用 Set 的 toArray() 方法将其转回数组。
```
Public[] test = ...;
Set<Public> set = new HashSet<Public>(Arrays.asList(test));
test = set.toArray(new Public[set.size()]);
```
方法二:使用Stream
Java 8 之后可以使用 Stream 中的 distinct() 方法来去重。
```
Public[] test = ...;
test = Arrays.stream(test).distinct().toArray(Public[]::new);
```
方法三: 手写比较去重
如果要手写代码来去重,可以使用两层循环,将数组中的元素两两比较,如果相同,就删除。如果用id为标准去重,可以建立一个Map将id映射到实体类上,来判断是否重复
```
Public[] test = ...;
Map<Integer, Public> map = new HashMap<>();
for (Public p : test) {
map.put(p.getId(), p);
}
test = map.values().toArray(new Public[map.size()]);
```
以上三种方法都是可行的,可以根据实际需求来选择使用。
阅读全文