集合去重操作,保证顺序不变,以集合中第一次出现的数据为准

    xiaoxiao2021-03-25  68

    直接上代码

    /** * 集合去重 * * @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; } }
    转载请注明原文地址: https://ju.6miu.com/read-13898.html

    最新回复(0)