`

1、集合练习

阅读更多
import java.util.*;
/**
 *使用LinkedList模拟一个堆栈或者队列数据结构
 *堆栈:先进后出   如同一个杯子
 *队列:先进先出   first in first out FIFO如同一个水管
 */
class DuiZhan
{
	private LinkedList link;
	DuiZhan()
	{
		link = new LinkedList();
	}
	public void add(Object obj)
	{
		link.addLast(obj);
	}
	public Object get()
	{
		return link.removeLast();
	}
	public boolean isEmpty()
	{
		return link.isEmpty();
	}
}
public class LinkedListTest
{
	public static void main(String[] args)
	{
		DuiZhan dui = new DuiZhan();
		dui.add("day1");
		dui.add("day2");
		dui.add("day3");
		dui.add("day4");
		while(!dui.isEmpty())
		{
			System.out.println(dui.get());
		}
	}
}

 

import java.util.*;
/**
 *要求:去除ArrayList中的重复元素
 */
class ArrayListTest
{
	public static void main(String[] args)
	{
		ArrayList<String> al = new ArrayList<String>();
		al.add("dd");
		al.add("cc");
		al.add("dd");
		al.add("cc");
		System.out.println(al);
		singleElement(al);
		System.out.println(al);
	}
	public static void singleElement(ArrayList al)
	{
		ArrayList list = new ArrayList();
		for(int x=0;x<al.size();x++)
		{
			if(!list.contains(al.get(x)))
				list.add(al.get(x));
		}
		al.clear();
		al.addAll(list);
	}
}

 

import java.util.*;
/**
 *要求:将自定义元素存储到ArrayList集合中并去除ArrayList中的重复元素
 *比如:存人,同姓名,同年龄视为重复元素,要去除
 *
 *结论:List集合判断元素是否相同,依据的是元素的equals方法。
 *      contains(obj) 和 remove(obj)等都要调用元素的equals方法,
 *      所以如果有特有的判断方式要重写equals方法
 */
class ArrayListTest
{
	public static void main(String[] args)
	{
		ArrayList al = new ArrayList();
		al.add(new Person("zhangsan",20));
		al.add(new Person("李四",20));
		al.add(new Person("王武",20));
		al.add(new Person("zhangsan",20));
		al.add(new Person("李四",20));
		al.add(new Person("王武",20));
		System.out.println(al);
		singleElement(al);
		System.out.println(al);
	}
	public static void singleElement(ArrayList al)
	{
		ArrayList list = new ArrayList();
		Iterator it = al.iterator();
		while(it.hasNext())
		{
			Person p = (Person)it.next();
			if(!list.contains(p))
				list.add(p);
		}
		al.clear();
		al.addAll(list);
	}
}
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;
	}
	public boolean equals(Object obj)
	{
		if(!(obj instanceof Person))
			return false;
		Person p = (Person)obj;
		return name.equals(p.name()) && age==p.age();
	}
	public String toString()
	{
		return name+"--"+age;
	}
}

 

分享到:
评论
1 楼 zhuguopei_java 2013-11-19  
return name.equals(p.name()) && age==p.age();  ???
有p.name()这个方法吗?还有 age()的也是

相关推荐

Global site tag (gtag.js) - Google Analytics