object返回去重java代码
时间: 2023-05-25 15:01:50 浏览: 77
A:
可以使用Java中的Set集合来去除重复元素。具体实现代码如下:
```java
public static <T> List<T> removeDuplicate(List<T> list) {
Set<T> set = new LinkedHashSet<>();
set.addAll(list);
list.clear();
list.addAll(set);
return list;
}
```
使用方法:
```java
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(1);
list.add(2);
List<Integer> result = removeDuplicate(list);
System.out.println(result); //输出 [1, 2, 3]
```
其中,LinkedHashSet保留了元素的插入顺序,可以保证去重后的list也保留了原有的顺序。
相关问题
list对象数组根据某个属性去重java
你可以使用Java 8中的Stream API来根据某个属性对list对象数组进行去重。具体实现如下:
假设你有一个包含Person对象的List:
```
List<Person> people = Arrays.asList(
new Person("John", 25),
new Person("Bob", 30),
new Person("John", 25),
new Person("Alice", 20)
);
```
如果你想根据Person对象的name属性去重,可以使用以下代码:
```
List<Person> distinctPeople = people.stream()
.filter(distinctByKey(Person::getName))
.collect(Collectors.toList());
```
其中,`distinctByKey`是一个自定义的方法,用于根据某个属性去重:
```
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
```
上述代码会返回一个新的List,其中包含去重后的Person对象:
```
[Person(name=John, age=25), Person(name=Bob, age=30), Person(name=Alice, age=20)]
```
注意:该方法仅适用于Java 8及以上版本。如果你使用的是早期版本的Java,你可以使用传统的方式来实现去重,例如使用HashSet等数据结构来去重。
list对象数组根据两个属性去重java
可以使用Java 8的Stream API来根据两个属性去重List对象数组,代码如下所示:
```java
List<MyObject> distinctList = myList.stream()
.collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getProperty1() + "|" + o.getProperty2()))),
ArrayList::new
));
```
这里假设MyObject类有两个属性:property1和property2。该代码将根据这两个属性的组合来去重List对象数组myList,并返回去重后的结果distinctList。
阅读全文