List去除重复元素

原理根据Set的特性,另外需要重写对象的hashCode()方法和equals()方法

代码如下

package com.pingan.home.tets;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.Set;

public class Person {

	private String name;
	private String addr;

	public Person(String name, String addr) {
		super();
		this.name = name;
		this.addr = addr;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((addr == null) ? 0 : addr.hashCode());
		result = prime * result + ((name == null) ? 0 : name.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;
		Person other = (Person) obj;
		if (addr == null) {
			if (other.addr != null)
				return false;
		} else if (!addr.equals(other.addr))
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}

	public static void main(String[] args) {
		ArrayList<Person> persoList = new ArrayList<Person>();
		for (int i = 0; i < 10; i++) {
			Person p = new Person("w", "j" + i);
			persoList.add(p);
		}
		Person p1 = new Person("w", "j" + 1);
		Person p2 = new Person("w", "j" + 5);
		Person p3 = new Person("w", "j" + 0);
		Person p4 = new Person("w", "j" + 9);
		persoList.add(p1);
		persoList.add(p2);
		persoList.add(p3);
		persoList.add(p4);
		System.out.println("persoList.size() s:" + persoList.size());
		Set<Person> set = new LinkedHashSet<Person>(persoList);
		persoList.clear();
		persoList.addAll(set);
		System.out.println("persoList.size() e:" + persoList.size());
	}
}
时间: 2024-10-13 09:20:03

List去除重复元素的相关文章

List集合去除重复元素,不打乱顺序(数组转List)

//数组转List List<String> objStr_0_List = Arrays.asList(objArr[0].split("#,#")); //List集合去除重复元素,不打乱顺序 private List<String> getNon_repeatList(List<String> Str_List) { List<String> resultList = new ArrayList<String>(); S

去除List集合中的重复元素? 如果没有Set集合,List集合是怎么去除重复元素的(字符串类型,自定义类型)?

 关键字: 如果没有Set集合,List集合是怎么去除重复元素的(字符串类型)?  *   *     思考: List就可以存储重复元素,那么需求中容器中的元素必须保证唯一性,该如何解决呢??  *      *   去除List集合中的重复元素?  * * 思路: * * 1.首先我需要另一个临时容器tempList,用来存放我认为应该保留的元素.(也就是不重复的元素) * 2.然后我们应该遍历原容器, 一个一个的取出元素, 放入tempList. * 当tempList里已经装有刚刚取出的

去除重复元素

1: package cn.cqu.huang; 2: 3: import java.util.ArrayList; 4: import java.util.List; 5: 6: public class MyArrayList { 7: 8: //去除重复元素 9: public static void main(String[] args){ 10: List<String> lst = new ArrayList<String>(); 11: lst.add("a

java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。

import java.util.*; /* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据封装进人对象. 2,定义容器,将人存入. 3,取出. List集合判断元素是否相同,依据是元素的equals方法. */ class Person { private String name; private int age; Person(String name,int age) { this.n

Python列表去除重复元素

主要尝试了3种列表去除重复元素 #2.去除列表中的重复元素 #set方法 def removeDuplicates_set(nums): l2 = list(set(l1)) #用l1的顺序排序l2 #l2.sort(key=l1.index) return l2 #重构字典方法 def removeDuplicates_dict_fromkeys(nums): l2 = {}.fromkeys(nums).keys() return list(l2) #列表推到式,普通方法 def remov

js 去除重复元素

方法一: 1 //数组去重的方法 2 Array.prototype.unique=function(){ 3 //集中声明变量 4 var 5 oldArr=this, 6 newArr=[oldArr[0]], 7 len=oldArr.length, 8 i=1; 9 //过滤空数组 10 if(!len) return this; 11 //过滤重复元素 12 for(;i<len;i++){ 13 newArr.indexOf(oldArr[i])<0 ? newArr.push(_

unique函数去除重复元素在vector中的应用

 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<vector> #include<algorithm> #include<iostream> using namespace std; int main() { int a[10]={1,7,4,1,7,4,1,7,4,0}; sort(a,a+10); vector<int> ver(a

TreeSet中不能去除重复元素。。。。。。。。。。。。。。

import java.util.Comparator;import java.util.Set;import java.util.TreeSet; /** * TreeSet如果是存String,默认会按照字母排序 * */public class Demo01 { public static void main(String[] args) { // TODO Auto-generated method stub //在一个集合中存储了无序并且重复的字符串,让其有序(字典顺序),而且还不能去

NSArray去除重复元素

直接上代码吧! 1.可以创建一个新的数组,对需要去除重复的数组进行遍历,如果新数组不包含就数组,那么添加元素,如果包含就不添加. 1 NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1",@"2",@"2",@"4",@"5",@"6",@"7",@"8",@"9&qu

python去除重复元素

目的:让我们两个列表压缩后,去除重复的点: 1.set()方法: 蓦然回首,那人却在灯火阑珊处: 这个方法实现了我想要的压缩后的列表的重复删除:   list4 = [0,0,1,2,4,5,6,7,5,0,2] list5 = [2,5,4,8,5,6,6,6,6,2,8] list6 = zip(list4,list5) list7 = list(list6) print(list7) a = list(set(list7)) print(a) #结果: [(0, 2), (0, 5), (