JAVA—— 去除ArrayList 集合中的相同元素

在ArrayList集合中元素之间的对比主要通过equals()方法进行判断:

主类:

/**
 * 去除ArrayList中的相同元素
 * */
package cn.itcast.arrylist_test.demo;

import java.util.ArrayList;
import java.util.Iterator;

import cn.itcast.arraylist.demo.Person;

public class ArrayListTest {

	public static void main(String[] args) {
		ArrayList a1=new ArrayList();
//		a1.add("abc1");
//		a1.add("abc2");
//		a1.add("abc3");
//		a1.add("abc3");
//		a1.add("abc4");
//		a1.add("abc4");
		a1.add(new Person(20, "haha20"));
		a1.add(new Person(21, "haha21"));
		a1.add(new Person(22, "haha22"));
		a1.add(new Person(22, "haha22"));
		a1.add(new Person(23, "haha23"));
		a1.add(new Person(23, "haha23"));
		
		System.out.println(a1);
		a1=getsingleArrayList(a1);
		System.out.println(a1);
	}

	public static ArrayList getsingleArrayList(ArrayList a1) {
		ArrayList temp=new ArrayList();
		for(Iterator it=a1.iterator();it.hasNext();)
		{
			Object o=it.next();
			if(!temp.contains(o))
				temp.add(o);
		}
		return temp;
	}
}

自定义Person类:

package cn.itcast.arraylist.demo;
/**
 * 描述人的类
 * */
public class Person {
	private int age;
	private String name;
	
	public Person(int age, String name) {
		super();
		this.age = age;
		this.name = name;
	}
	
	public int getAge() {
		return age;
	}
	@Override
	public int hashCode() {
//		System.out.println(this+"....hashcode");
		return name.hashCode()+age;
	}

	@Override
	public boolean equals(Object obj) {
//		System.out.println(this+"....equals");
		if(this==obj)
			return true;
		if(!(obj instanceof Person))
			return false;
		Person p=(Person) obj;
		return this.name.equals(p.name)&&this.age==p.age;
	}

	@Override
	public String toString() {
		
		return name+":"+age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

猜你喜欢

转载自blog.csdn.net/TDOA1024/article/details/81709713