ArrayList联系二------自定义对象,然后去除重复元素

原创 2015年11月20日 10:23:04
/*
 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。
 比如:存入人对象,同姓名,同年龄视为同一个人,为重复元素。
 
 思路:
 1、对人描述,将数据封装进对象。
 2、定义容器将人存入。
 3、去除重复的元素并取出。
 
 List集合判断元素是否相同,依据的元素的equals方法。
 */


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

class Person
{
	private String name;
	private int age;
	Person(String name,int age)
	{
		this.name=name;
		this.age=age;
	}
	public String getName()
	{
		return name;
	}
	public int getAge()
	{
		return age;
	}
	//原类中equals比较的是地址值,所以这里要对equals方法进行重写
	public boolean equals(Object obj)
	{
		if(!(obj instanceof Person))
			return false;
		Person p=(Person)obj;
		return this.name.equals(p.name)&&this.age==p.age;
	}
}
public class ArrayListExercise2 {
	public static void main(String[] args) {
		ArrayList al=new ArrayList();
		al.add(new Person("张三",30));
		al.add(new Person("李四",32));
		al.add(new Person("张三",30));
		al.add(new Person("李四",32));
		al.add(new Person("张三",30));
		al.add(new Person("李四",32));
		
		al=single(al);
		//取出  用迭代器
		Iterator it=al.iterator();
		while(it.hasNext())
		{
			//因为it.next()只有Object类对象可以访问,所以这里要进行强制类型转换
			Person p=(Person)it.next();
			System.out.println(p.getName()+"::"+p.getAge());
		}
	}
	public static ArrayList single(ArrayList al)
	{
		//定义一个临时容器
		ArrayList newAl=new ArrayList();
		
		Iterator it=al.iterator();
		System.out.println("去除重复元素后的集合为:");
		while(it.hasNext())
		{
			Object obj=it.next();
			if(!newAl.contains(obj)) //调用contains的时候contains会调用equals方法
			{
				newAl.add(obj);
			}
		}
		return newAl;
	}
}


结果:

通过这个小程序知道了一些细节性的东西,但是脑子依旧有点乱。

版权声明:本文为博主原创文章,如需转载请注明出处。

Java编程:定义功能去除ArrayList中的重复元素

说道ArrayList大家头脑中肯定能想到,ArrayList内部是数据链接列表实现(链表数据结构);是不同步的(效率高),增删速度快;有角标,但底层是链表结构。那么问题来了,既然ArrayList中...
  • linweieran
  • linweieran
  • 2015年10月05日 15:25
  • 1255

ArrayList去除集合中自定义对象元素的重复值

/** * 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同) * B:注意事项 * 重写equal...
  • sxj159753
  • sxj159753
  • 2016年03月24日 21:44
  • 940

Java之——删除ArrayList中的重复元素的2种方法

ArrayList是Java中最常用的集合类型之一。它允许灵活添加多个null元素,重复的元素,并保持元素的插入顺序。在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除重复元素的要求。...
  • l1028386804
  • l1028386804
  • 2015年08月11日 09:26
  • 8018

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

Java将自定义对象作为元素存到ArrayList集合中,并去除重复元素
  • hoho_12
  • hoho_12
  • 2016年04月15日 16:33
  • 1710

去除ArrayList中重复字符串元素方式

import java.util.ArrayList; import java.util.Iterator; @SuppressWarnings({ "rawtypes", "unchecked" }...
  • uotail
  • uotail
  • 2017年05月10日 12:11
  • 133

删除ArrayList中重复元素

方法一:循环元素删除 (使用的方式FOR循环操作。不建议使用大数据量的转换。。n*n的循环量)// 删除ArrayList中重复元素 public stat...
  • gabriel80
  • gabriel80
  • 2008年11月11日 11:13
  • 7464

ArrayList中去除重复数据,以及去除重复的自定义对象

去掉重复数据思路:创建一个新集合,遍历旧的集合,不包含就添加 private ArrayList getList(List arr) {         List list = new Array...
  • SmallDade
  • SmallDade
  • 2016年07月08日 07:50
  • 5017

ArrayList中元素去重问题

如题所示,如果一个ArrayList中包含多个重复元素,该如何去重呢? 思路一以及实现: 声明2个ArrayList,分别为listA与listB ,listA为待去重list ,listB 保存...
  • kris234seth
  • kris234seth
  • 2016年01月25日 14:46
  • 534

ArrayList容器---去除重复元素

需求:1.将自定义对象作为元素存到ArrayList集合中,并去除重复元素  * 比如存人的对象,同姓名同年龄,视为同一个人,为重复元素  *   * 思路:1.对人创建一个类,将数据封装进创建的人对...
  • zchdjb
  • zchdjb
  • 2016年09月26日 05:31
  • 133

【java编程】Collection类之ArrayList去除自定义对象的重复元素

/*contains和remove用的比较方法都是equals方法*/ import java.util.*; class removeObjectElement { public static ...
  • KFCKA
  • KFCKA
  • 2015年02月17日 08:16
  • 590
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ArrayList联系二------自定义对象,然后去除重复元素
举报原因:
原因补充:

(最多只允许输入30个字)