要了解更详细的原理,可以去了解Java中集合的机制,这里的主要原因就是要复写 hashCode() 方法和 equals() 方法
那么这个时候在list对象中的数据就不会存在id一样的相同数据了
贴下代码:
/*******************************************************************************
*
* Copyright (c) Weaver Info Tech Co. Ltd
*
* SessionInfo
*
* app.backend.model.SessionInfo.java
* TODO: File description or class description.
*
* @author: Administrator
* @since: 2014-5-26
* @version: 1.0.0
*
* @changeLogs:
* 1.0.0: First created this class.
*
******************************************************************************/
package app.backend.model;
import java.io.Serializable;
/**
* @author Administrator
*
*/
@SuppressWarnings("serial")
public class SessionInfo implements Serializable{
private int id;
private String url;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
return id;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object o) {
if (o == null) {
return false;
} else {
if (o.getClass() != this.getClass()) {
return false;
} else {
final SessionInfo s = (SessionInfo) o;
return s.id == this.id;
}
}
}
}
private SessionInfo mSessionInfo = null; //实体类对象
Set<SessionInfo> sessionList = new HashSet<SessionInfo>(); //声明set集合对象
final List<SessionInfo> list = new ArrayList<SessionInfo>();//声明list集合对象
mSessionInfo = SessionInfo.fromJsonObject(mJsonObj); //自己定义的解析数据类,返回实体对象
sessionList.add(mSession);//将对象添加到Set集合中
list.addAll(sessionList);//将数据添加到list集合对象那么这个时候在list对象中的数据就不会存在id一样的相同数据了

本文介绍Java中集合如何通过正确实现hashCode()和equals()方法来确保元素唯一性。以SessionInfo类为例,展示了如何避免集合中出现重复元素。
601

被折叠的 条评论
为什么被折叠?



