JAVA自学教程之(常用对象API)—Vector、LinkedList、ArrayList集合演示



JAVA自学教程之(常用对象API)—Vector、LinkedList、ArrayList集合演示。

集合框架构成图


摘自百度图片

一、Vector集合 演示

虽然Vector已经不常用了,但是还是要了解一下其中的方法

 

  1. import java.util.ArrayList;
  2. import java.util.Enumeration;
  3. import java.util.Iterator;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6. import java.util.ListIterator;
  7. import java.util.Vector;
  8. import java.util.*;
  9. public class Main
  10. {
  11.     public static void main(String[] args)
  12.     {
  13.         Vector vec = new Vector();
  14.         vec.add(“a1″);
  15.         vec.add(“a2″);
  16.         vec.add(“a3″);
  17.         vec.add(“a4″);
  18.         Enumeration enumer = vec.elements();
  19.         while (enumer.hasMoreElements()) {
  20.             Object object = (Object) enumer.nextElement();
  21.             System.out.println(“next Elements”+object);
  22.         }
  23.         /*
  24.          * 此接口的功能与 Iterator 接口的功能是重复的。此外,Iterator 接口添加了一个可选的移除操作,并使用较短的方法名。
  25.          * 新的实现应该优先考虑使用 Iterator 接口而不是 Enumeration 接口。
  26.          * */
  27.         Iterator it = vec.iterator();
  28.         while (it.hasNext()) {
  29.             Object object = (Object) it.next();
  30.             System.out.println(“it next ”+object);
  31.         }
  32.     }
  33. }

二、LinkedList集合演示

 

 

  1. import java.util.LinkedList;
  2. public class Main
  3. {
  4.     public static void main(String[] args)
  5.     {
  6.         LinkedList link = new LinkedList();
  7.         link.addFirst(“a1″);
  8.         link.addFirst(“a2″);
  9.         link.addFirst(“a3″);
  10.         link.addFirst(“a4″);
  11.         /*头插法*/
  12.         System.out.println(“link = ”+link);
  13.         //System.out.println(“Get First elments = ”+link.getFirst());//获取第一个元素
  14.         //System.out.println(“Remove Frist elements = ”+link.removeFirst());//删除第一个元素
  15.         /*while (!link.isEmpty()) {//从头开是遍历,取一个删一个
  16.             System.out.println(link.removeFirst());
  17.         }*/
  18.         while(!link.isEmpty()){//从尾开始遍历
  19.             System.out.println(link.removeLast());
  20.         }
  21.         System.out.println(“Finally link = ”+link);
  22.     }
  23. }

API文档解释:注意,此实现不是同步的。如果多个线程同时访问一个链接列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用Collections.synchronizedList 方法来“包装”该列表。最好在创建时完成这一操作,以防止对列表进行意外的不同步访问


 

 

Link的堆栈和队列演示

 

  1. import java.util.LinkedList;
  2. class queue
  3. {
  4.     private LinkedList link;
  5.     public queue() {
  6.         // TODO Auto-generated constructor stub
  7.         link = new LinkedList();
  8.     }
  9.     public void AddQueEle(Object obj)
  10.     {
  11.         link.addLast(obj);
  12.     }
  13.     public Object GetQueEle()
  14.     {
  15.         return link.removeFirst();//栈只需改为 link.removeLast()即可
  16.     }
  17.     public boolean IsQueEmpty()
  18.     {
  19.         return link.isEmpty();
  20.     }
  21. }
  22. public class Main
  23. {
  24.     public static void main(String[] args)
  25.     {
  26.         queue Q = new queue();
  27.         Q.AddQueEle(“a1″);
  28.         Q.AddQueEle(“a2″);
  29.         Q.AddQueEle(“a3″);
  30.         Q.AddQueEle(“a4″);
  31.         while(!Q.IsQueEmpty()){
  32.             System.out.println(Q.GetQueEle());
  33.         }
  34.     }
  35. }

Link方法JDK1.6:

 

 

  1. JDK1.5以前
  2. addFrist();添加
  3. addLast();
  4. JDK1.6
  5. offerFrist()
  6. offerLast();
  7. JDK1.5以前
  8. getFrist();获取第一个元素(不删除),如果Link为空,抛出NoSuchElementException异常
  9. getLast();
  10. JDK1.6
  11. peekFrist():获取第一个元素(不删除),如果Link为空,return null
  12. peekLast();
  13. JDK1.5
  14. removeFrist():获取第一个元素并删除,如果Link为空,抛出NoSuchElementException异常
  15. removeLast():
  16. JDK1.6
  17. pullFrist():获取第一个元素并删除,如果Link为空,return null
  18. pullLast():

三、ArrayList集合演示

 

 

  1. import java.security.Permissions;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. import java.util.LinkedList;
  5. class Man
  6. {
  7.     private String name;
  8.     private int age;
  9.     public Man(String name, int age) {
  10.         super();
  11.         this.name = name;
  12.         this.age = age;
  13.     }
  14.     public Man() {
  15.         super();
  16.         // TODO Auto-generated constructor stub
  17.     }
  18.     public String getName() {
  19.         return name;
  20.     }
  21.     public void setName(String name) {
  22.         this.name = name;
  23.     }
  24.     public int getAge() {
  25.         return age;
  26.     }
  27.     public void setAge(int age) {
  28.         this.age = age;
  29.     }
  30. }
  31. public class Main
  32. {
  33.     public static void main(String[] args)
  34.     {
  35.         ArrayList aList = new ArrayList();
  36.         aList.add(new Man(“a1″,11));
  37.         aList.add(new Man(“a2″,12));
  38.         aList.add(new Man(“a3″,13));
  39.         aList.add(new Man(“a4″,14));
  40.         Iterator it = aList.iterator();
  41.         while(it.hasNext())
  42.         {
  43.             Man pMan = (Man)it.next();
  44.             System.out.println(pMan.getName()+”::”+pMan.getAge());
  45.         }
  46.     }
  47. }