//比如对象有两个属性:id(String类型)和effDate(Date类型),类的名字叫TreeNode
@Override public boolean equals(Object object){ if (object == null){ return false; } if (this == object){ return true; } TreeNode treeNode = (TreeNode) object; if(treeNode.id.equals(this.id)){ // LocalDate ld1 = new LocalDate(new DateTime(this.effDate)); // LocalDate ld2 = new LocalDate(new DateTime(treeNode.effDate)); // return ld1.equals(ld2); long d1 = this.effDate.getTime(); long d2 = treeNode.effDate.getTime(); if (d1 == d2){ return true; } return false; } return false; } @Override public int hashCode(){ //return Objects.hash(id,effDate); final int prime = 31; int result = 1; result = prime * result + ((id == null)?0:id.hashCode()); result = prime * result + ((effDate == null)?0:effDate.hashCode()); return result; }
//可以借助这个来对一个list里相同的对象进行过滤
List<TreeNode> list= Stream.of(list1,list2).flatMap(Collection::stream).distinct().collect(Collectors.toList());