JAVA自学教程之(常用对象API)—Vector、LinkedList、ArrayList集合演示。
集合框架构成图
摘自百度图片
一、Vector集合 演示
虽然Vector已经不常用了,但是还是要了解一下其中的方法
- import java.util.ArrayList;
- import java.util.Enumeration;
- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.List;
- import java.util.ListIterator;
- import java.util.Vector;
- import java.util.*;
- public class Main
- {
- public static void main(String[] args)
- {
- Vector vec = new Vector();
- vec.add(“a1″);
- vec.add(“a2″);
- vec.add(“a3″);
- vec.add(“a4″);
- Enumeration enumer = vec.elements();
- while (enumer.hasMoreElements()) {
- Object object = (Object) enumer.nextElement();
- System.out.println(“next Elements”+object);
- }
- /*
- * 此接口的功能与 Iterator 接口的功能是重复的。此外,Iterator 接口添加了一个可选的移除操作,并使用较短的方法名。
- * 新的实现应该优先考虑使用 Iterator 接口而不是 Enumeration 接口。
- * */
- Iterator it = vec.iterator();
- while (it.hasNext()) {
- Object object = (Object) it.next();
- System.out.println(“it next ”+object);
- }
- }
- }
二、LinkedList集合演示
- import java.util.LinkedList;
- public class Main
- {
- public static void main(String[] args)
- {
- LinkedList link = new LinkedList();
- link.addFirst(“a1″);
- link.addFirst(“a2″);
- link.addFirst(“a3″);
- link.addFirst(“a4″);
- /*头插法*/
- System.out.println(“link = ”+link);
- //System.out.println(“Get First elments = ”+link.getFirst());//获取第一个元素
- //System.out.println(“Remove Frist elements = ”+link.removeFirst());//删除第一个元素
- /*while (!link.isEmpty()) {//从头开是遍历,取一个删一个
- System.out.println(link.removeFirst());
- }*/
- while(!link.isEmpty()){//从尾开始遍历
- System.out.println(link.removeLast());
- }
- System.out.println(“Finally link = ”+link);
- }
- }
API文档解释:注意,此实现不是同步的。如果多个线程同时访问一个链接列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用Collections.synchronizedList
方法来“包装”该列表。最好在创建时完成这一操作,以防止对列表进行意外的不同步访问
Link的堆栈和队列演示
- import java.util.LinkedList;
- class queue
- {
- private LinkedList link;
- public queue() {
- // TODO Auto-generated constructor stub
- link = new LinkedList();
- }
- public void AddQueEle(Object obj)
- {
- link.addLast(obj);
- }
- public Object GetQueEle()
- {
- return link.removeFirst();//栈只需改为 link.removeLast()即可
- }
- public boolean IsQueEmpty()
- {
- return link.isEmpty();
- }
- }
- public class Main
- {
- public static void main(String[] args)
- {
- queue Q = new queue();
- Q.AddQueEle(“a1″);
- Q.AddQueEle(“a2″);
- Q.AddQueEle(“a3″);
- Q.AddQueEle(“a4″);
- while(!Q.IsQueEmpty()){
- System.out.println(Q.GetQueEle());
- }
- }
- }
Link方法JDK1.6:
- JDK1.5以前
- addFrist();添加
- addLast();
- JDK1.6
- offerFrist()
- offerLast();
- JDK1.5以前
- getFrist();获取第一个元素(不删除),如果Link为空,抛出NoSuchElementException异常
- getLast();
- JDK1.6
- peekFrist():获取第一个元素(不删除),如果Link为空,return null
- peekLast();
- JDK1.5
- removeFrist():获取第一个元素并删除,如果Link为空,抛出NoSuchElementException异常
- removeLast():
- JDK1.6
- pullFrist():获取第一个元素并删除,如果Link为空,return null
- pullLast():
三、ArrayList集合演示
- import java.security.Permissions;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.LinkedList;
- class Man
- {
- private String name;
- private int age;
- public Man(String name, int age) {
- super();
- this.name = name;
- this.age = age;
- }
- public Man() {
- super();
- // TODO Auto-generated constructor stub
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- }
- public class Main
- {
- public static void main(String[] args)
- {
- ArrayList aList = new ArrayList();
- aList.add(new Man(“a1″,11));
- aList.add(new Man(“a2″,12));
- aList.add(new Man(“a3″,13));
- aList.add(new Man(“a4″,14));
- Iterator it = aList.iterator();
- while(it.hasNext())
- {
- Man pMan = (Man)it.next();
- System.out.println(pMan.getName()+”::”+pMan.getAge());
- }
- }
- }