直接上代码
/**
* 集合去重
*
* @param list
* @return
*/
private <T> List<T> removeDuplicate(List<T> list) {
Set<T> set = new HashSet<T>();
List<T> newList = new ArrayList<T>();
for (Iterator<T> iter = list.iterator(); iter.hasNext();) {
T element = (T) iter.next();
if (set.add(element))
newList.add(element);
}
return newList;
}
注意:如果是复杂对象操作,需要重写实体bean的hashCode和equals方法,才能正常去重
例如:
public class UserSynInfo {
/**
* 用户名
*
* 作为更新表的主键使用
*/
@JSONField(name="UserId")
private Long userId;
/**
* 用户昵称
*/
@JSONField(name="NickName")
private String nickName;
/**
* 用户的NetId
*/
@JSONField(name="NetId")
private Integer netId;
/**
* 用户加入家庭时间,时间格式为标准时间戳格式,如2016-03-23 11:43:07
*/
@JSONField(name="CreateTime",format="yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 全同步不需要,单条同步需要
*/
@JSONField(name="SN")
private String sN;
/**
* 更新时间,时间格式为标准时间戳格式,如2016-03-23 11:43:07
*/
@JSONField(name="UpdateTime",format="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
*用户是否退出家庭 1:退出家庭, 0:加入家
*/
@JSONField(name="DeleteFlg")
private String deleteFlg;
public String getDeleteFlg() {
return deleteFlg;
}
public void setDeleteFlg(String deleteFlg) {
this.deleteFlg = deleteFlg;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public Integer getNetId() {
return netId;
}
public void setNetId(Integer netId) {
this.netId = netId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getsN() {
return sN;
}
public void setsN(String sN) {
this.sN = sN;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((userId == null) ? 0 : userId.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
UserSynInfo other = (UserSynInfo) obj;
if (userId == null) {
if (other.userId != null)
return false;
} else if (!userId.equals(other.userId))
return false;
return true;
}
}