集合框架_05_ArrayList集合

原创 2016年08月20日 17:47:45
一、去除ArrayList中的重复

/*
去除ArrayList集合中的重复元素。

*/

class ArrayListTest 
{

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
	public static void main(String[] args) 
	{
		ArrayList al = new ArrayList();

		al.add("java01");
		al.add("java02");
		al.add("java01");
		al.add("java02");
		al.add("java01");
//		al.add("java03");


		/*
		在迭代时循环中next调用一次,就要hasNext判断一次。
		Iterator it = al.iterator();

		while(it.hasNext())
		{
			sop(it.next()+"...."+it.next());
		}
		*/

		/**/
		sop(al);
		
		al = singleElement(al);

		sop(al);
		

	}

	public static ArrayList singleElement(ArrayList al)
	{
		//定义一个临时容器。
		ArrayList newAl = new ArrayList();

		Iterator it = al.iterator();

		while(it.hasNext())
		{
			Object obj = it.next();

			if(!newAl.contains(obj))
				newAl.add(obj);

		}

		return newAl;
	}
}

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

 比如:存人对象。同姓名同年龄,视为同一个人。为重复元素。


 思路:
 1,对人描述,将数据封装进人对象。
 2,定义容器,将人存入。
 3,取出。



 List集合判断元素是否相同,依据是元素的equals方法。



 */

class Person {
	private String name;
	private int age;

	Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public boolean equals(Object obj) {

		if (!(obj instanceof Person))
			return false;

		Person p = (Person) obj;
		// System.out.println(this.name+"....."+p.name);

		return this.name.equals(p.name) && this.age == p.age;
	}

	/**/
	public String getName() {
		return name;
	}

	public int getAge() {
		return age;
	}
}

class ArrayListTest2 {
	public static void sop(Object obj) {
		System.out.println(obj);
	}

	public static void main(String[] args) {
		ArrayList al = new ArrayList();

		al.add(new Person("lisi01", 30));// al.add(Object obj);//Object obj =
											// new Person("lisi01",30);
		// al.add(new Person("lisi02",32));
		al.add(new Person("lisi02", 32));
		al.add(new Person("lisi04", 35));
		al.add(new Person("lisi03", 33));
		// al.add(new Person("lisi04",35));

		// al = singleElement(al);

		sop("remove 03 :" + al.remove(new Person("lisi03", 33)));// remove方法底层也是依赖于元素的equals方法。

		Iterator it = al.iterator();

		while (it.hasNext()) {
			Person p = (Person) it.next();
			sop(p.getName() + "::" + p.getAge());
		}
	}

	public static ArrayList singleElement(ArrayList al) {
		// 定义一个临时容器。
		ArrayList newAl = new ArrayList();

		Iterator it = al.iterator();

		while (it.hasNext()) {
			Object obj = it.next();

			if (!newAl.contains(obj))
				newAl.add(obj);

		}

		return newAl;
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

java集合框架05——ArrayList和LinkedList的区别

前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容。 List概括 先来回顾一下List在Collection中的的框架图...
  • eson_15
  • eson_15
  • 2016年04月13日 20:39
  • 7586

java源码分析之集合框架 ArrayList和LinkedList的区别05

List概括 先来回顾一下List在Collection中的的框架图: 从图中我们可以看出: 1. List是一个接口,它继承与Collection接口,代表有序...

集合框架类ArrayList

  • 2011年05月12日 14:02
  • 945KB
  • 下载

集合框架---ArrayList中去除重复的方法

去除集合中字符串的重复值 案例一:利去除ArrayList中重复字符串元素方式 //利用ArrayList集合去除集合中重复的字符串 public static void main(String[] ...

java集合框架学习—ArrayList的实现原理

 转自:http://zhangshixi.iteye.com/blog/6748561. ArrayList概述:   ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允...
  • FG2006
  • FG2006
  • 2011年05月06日 16:44
  • 2442

一步一步解析集合框架ArrayList源码(4)

我在阅读源码的过程中很多时候是没有头绪的。所以为了避免大家也遇到这种状况,源码不求全求大,做到“透过实践看源码”,分块分层。 首先对ArrayList做个总体介绍: ArrayList的底层存储...

Java集合框架:ArrayList、LinkedList、HashSet、TreeSet、HashMap、Iterator

Java集合框架中常见的类和接口:ArrayList、LinkedList、HashSet、TreeSet、HashMap、Iterator...

Java基础--集合框架Conllection(LinkedList、ArrayList)

集合框架集合类 概述:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 与数组的区别: 数组:可存储基本数据类型,可存储对...

一步一步解析集合框架ArrayList源码(3)

我在阅读源码的过程中很多时候是没有头绪的。所以为了避免大家也遇到这种状况,源码不求全求大,做到“透过实践看源码”,分块分层。 首先对ArrayList做个总体介绍: ArrayList的底层存储...

java集合框架List之ArrayList(二) .

在上一篇文章,我们大概了解了ArrayList是个啥以及它的常用操作,那么对于某些操作的内部情况到底是怎么处理的,我们还没有实质性的了解,接下来我们一起来探讨探讨。 ArrayList的动态扩容 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:集合框架_05_ArrayList集合
举报原因:
原因补充:

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