List裏面刪除相同的對象

import java.util.ArrayList;
import java.util.List;

public class RemoveList {
	public static void main(String[] args) {
		List<CompInfo> list1 = new ArrayList<CompInfo>();
		List<CompInfo> list2 = new ArrayList<CompInfo>();
		CompInfo c1 = new CompInfo();
		c1.setCompid("11111");
		c1.setCompnm("aaaaa");
		CompInfo c2 = new CompInfo();
		c2.setCompid("22222");
		c2.setCompnm("bbbbb");
		CompInfo c3 = new CompInfo();
		c3.setCompid("33333");
		c3.setCompnm("ccccc");
		CompInfo c4 = new CompInfo();
		c4.setCompid("11111");
		c4.setCompnm("aaaaa");

		list1.add(c1);
		list1.add(c2);
		list1.add(c3);
		list2.add(c4);

		list1.removeAll(list2);// 重點是這個,去重寫CompInfo的equals方法

		for (CompInfo ci : list1) {
			System.out.println(ci);
		}
	}
}

public class CompInfo {
	private String compid;
	private String compnm;

	public String getCompid() {
		return compid;
	}

	public void setCompid(String compid) {
		this.compid = compid;
	}

	public String getCompnm() {
		return compnm;
	}

	public void setCompnm(String compnm) {
		this.compnm = compnm;
	}

	@Override
	public int hashCode() {
		return super.hashCode();
	}

	@Override
	public boolean equals(Object o) {
		if (null == o)
			return false;
		if (!(o instanceof CompInfo))
			return false;
		CompInfo c = (CompInfo) o;
		if (this.compnm.equals(c.getCompnm())
				&& this.compid.equals(c.getCompid())) {
			return true;
		}
		return false;
	}

	@Override
	public String toString() {
		return "CompInfo [compid=" + compid + ", compnm=" + compnm + "]";
	}
}


發佈了37 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章