1.List<String> 去重
list.stream().distinct().collect(Collectors.toList());
去重前:AABBC
去重后:ABC
2.List<实体类>去重
List.stream().distinct().collect(Collectors.toList())
去重前:[{"stuNo":"001","name":"Tom"},{"stuNo":"002","name":"Mike"},{"stuNo":"001","name":"Tom"}] 去重后:[{"stuNo":"001","name":"Tom"},{"stuNo":"002","name":"Mike"}]
3.List<Object>
中 Object
某个属性去重
方法:
xxxxList.stream().collect(
Collectors.collectingAndThen(Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(o -> o.getTreeId() + ";" + o.getTreeContentId()))),
ArrayList::new))
xxxxList.stream().collect(
Collectors.collectingAndThen(Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(o -> o.getTreeId() + ";" + o.getTreeContentId()))),
ArrayList::new))
package org.example;
public class StoryColumn {
private String treeId;
private String treeContentId;
public String getTreeId() {
return treeId;
}
public void setTreeId(String treeId) {
this.treeId = treeId;
}
public String getTreeContentId() {
return treeContentId;
}
public void setTreeContentId(String treeContentId) {
this.treeContentId = treeContentId;
}
}
package org.example;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
public class testList {
public static void main(String[] args) {
StoryColumn storyColumn1 = new StoryColumn();
storyColumn1.setTreeId("1161");
storyColumn1.setTreeContentId("1042551");
StoryColumn storyColumn2 = new StoryColumn();
storyColumn2.setTreeId("1161");
storyColumn2.setTreeContentId("1042551");
StoryColumn storyColumn3 = new StoryColumn();
storyColumn3.setTreeId("1160");
storyColumn3.setTreeContentId("1042550");
StoryColumn storyColumn4 = new StoryColumn();
storyColumn4.setTreeId("1160");
storyColumn4.setTreeContentId("1042550");
StoryColumn storyColumn5 = new StoryColumn();
storyColumn5.setTreeId("1165");
storyColumn5.setTreeContentId("1042555");
List<StoryColumn> storyColumnList = new ArrayList<>();
storyColumnList.add(storyColumn1);
storyColumnList.add(storyColumn2);
storyColumnList.add(storyColumn3);
storyColumnList.add(storyColumn4);
storyColumnList.add(storyColumn5);
for (StoryColumn storyColumn : storyColumnList) {
System.out.println(storyColumn.getTreeId()+"----"+storyColumn.getTreeContentId());
}
storyColumnList = storyColumnList.stream().collect(
Collectors.collectingAndThen(Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(o -> o.getTreeId() + ";" + o.getTreeContentId()))),
ArrayList::new));
System.out.println("-------------------------------");
for (StoryColumn storyColumn : storyColumnList) {
System.out.println(storyColumn.getTreeId()+"----"+storyColumn.getTreeContentId());
}
}
}
运行:
1161----1042551
1161----1042551
1160----1042550
1160----1042550
1165----1042555
-------------------------------
1160----1042550
1161----1042551
1165----1042555