import java.util.*;
class day14
{
public static void main(String[] args)
{
//List集合
ArrayList al = new ArrayList();
//添加元素
al.add("java01");
al.add("java02");
al.add("java03");
al.add("java04");
//在指定位置添加元素
al.add(2,"添加");
//删除指定位置元素
al.remove(1);
//修改指定位置元素
al.set(3,"修改");
//for循环获取所有元素
for (int x = 0;x < al.size();x++)
{
sop(al.get(x));
}
//获取元素位置
sop(al.indexOf("java01"));
//取一部分子元素
sop(al.subList(2,4));
//查询元素中是否有某一元素
sop(al.contains("java01"));
//在某一元素后面添加元素
al.add(al.indexOf("java01")+1,"java0001");
//=====================================================================
//反向查找某元素
for (ListIterator li = al.listIterator(al.size());li.hasPrevious();)
{
if (li.previous().equals("java03"))
{
sop("反向查找");
}
}
//======================================================================
//取集合中的交集
ArrayList al2 = new ArrayList();
al2.add("java01");
al2.add("java03");
al2.add("java06");
al2.add("java05");
sop(al.retainAll(al2));
//删除集合中的交集
sop(al.removeAll(al2));
//删除某一元素
al.add("java01");
al.add("java02");
al.add("java03");
al.add("java04");
al.remove("java02");
//判断元素是否存在
sop(al.contains("java03"));
//判断集合是否为空
sop(al.isEmpty());
//判断集合长度
sop(al.size());
//普通打印集合
sop(al);
//使用迭代器打印集合
for (Iterator it = al.iterator();it.hasNext();)
{
sop(it.next());
}
sop("Set--Set--Set--Set--Set--Set--Set--Set--Set");
//Set集合
Set ts = new TreeSet();
//判断某一元素是否添加成功
sop(ts.add("java01"));
ts.clear();
//链表集合
LinkedList ll = new LinkedList();
ll.add("01");
//将元素添加到集合前面
ll.addFirst("02");
//将元素添加到集合后面
ll.addLast("03");
//不使用迭代器取出所有元素
while(!ll.isEmpty())
{
sop(ll.remove());
}
//枚举取出Vector中所有元素
Vector v = new Vector();
v.add("1");
v.add("2");
v.add("3");
v.add("4");
for (Enumeration e = v.elements();e.hasMoreElements(); )
{
sop(e.nextElement());
}
//封装一个先进先出的类
FIFO fifo = new FIFO();
fifo.myAdd("1");
fifo.myAdd("2");
fifo.myAdd("3");
fifo.myAdd("4");
while (!fifo.myIsEmpty())
{
sop(fifo.myRemove());
}
//定义一个方法,去除重复元素
al = new ArrayList();
al.add("java01");
al.add("java01");
al.add("java03");
al.add("java03");
sop(method(al));
//存入自定义Person对像(姓名,年龄)
//存入自定义对象(姓名,年龄),并去除重复对象
HashSet hs = new HashSet();
sop(hs.add(new Person("张三",16)));
hs.add(new Person("李四",18));
hs.add(new Person("李四",18));
hs.add(new Person("王五",18));
hs.add(new Person("赵六",21));
for (Iterator it = hs.iterator();it.hasNext() ; )
{
Person p = (Person)it.next();
sop(p.getName()+p.getAge());
}
}
public static ArrayList method(ArrayList al)
{
ArrayList al2 = new ArrayList();
for (Iterator it = al.iterator();it.hasNext() ; )
{
Object obj = it.next();
if (!al2.contains(obj))
{
al2.add(obj);
}
}
return al2;
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
class FIFO
{
private LinkedList ll;
FIFO()
{
ll = new LinkedList();
}
public void myAdd(Object obj)
{
ll.addLast(obj);
}
public boolean myIsEmpty()
{
return ll.isEmpty();
}
public Object myRemove()
{
return ll.remove();
}
}
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 int hashCode()
{
return name.hashCode()+age*11;
}
public boolean equals(Object obj)
{
if (!(obj instanceof Person))
{
return false;
}
return name == this.name && this.age == age;
}
}