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

直接上代码

/**
     * 集合去重
     * 
     * @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;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值