day14综合练习

来源:互联网 发布:ubuntu 14.04 qq2013 编辑:程序博客网 时间:2024/04/29 12:00

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;
  }
 }