JAVA学习第三十五课(常用对象API)—Vector、LinkedList、ArrayList集合演示

原创 2014年10月19日 15:41:44

集合框架构成图


摘自百度图片

一、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());
		}
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

web.xml路径匹配原则

/mytest web.xml中的3种写法  ① 完全匹配 /test/list.do  ②   目录匹配 /test/*  ③   扩展名匹配 *.do servlet-mapping的重...
  • Mr_Pang
  • Mr_Pang
  • 2015年07月22日 15:41
  • 1447

web.xml路径匹配规则

/mytest web.xml中的3种写法  ① 完全匹配 /test/list.do   ②   目录匹配 /test/*   ③   扩展名匹配 *.do  servlet-ma...

16 API-集合(List的子类(ArrayList_Vector_LinkedList,集合嵌套遍历),JDK5新特性(泛型,增强for循环,静态导入,可变参数)

16 API-集合(List的子类(ArrayList_Vector_LinkedList,集合嵌套遍历),JDK5新特性(泛型,增强for循环,静态导入,可变参数)...

JAVA学习第三十四课 (常用对象API)—List集合及其子类特点

整个集合框架中最常用的就是List(列表)和Set(集) 一、List集合 && Set的特点 Collection的子接口: 1、List:有序(存入和取出的顺序一致),元素都有索引且可以重复 ...

JAVA学习第三十七课(常用对象API)— Set集合:TreeSet集合、比较器

一、LinkedHashSet集合 HashSet下有子类LinkedHashSet API文档关于LinkedHashSet的解释: 具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现...

Java集合框架里ArrayList Vector和LinkedList的区别

一、Vector和ArrayList 相同点: Vector和ArrayList都是基于储存元素的Object[] array来实现的,是根据索引来访问元素。 不同点: 1)同步性    Vecto...

Java--集合体系(ArrayList、Vector、LinkedList)

一、集合的由来及集合继承体系图 1、集合的由来             数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦             java内部给我们提供了集合类...

java进阶(4)集合类:ArrayList和 LinkedList,Vector 和stack,HashMap的基本用法

import java.util.*; import java.io.*; public class Test2{ public static void main(String[]args)t...

Java 集合:Collection,List,ArrayList,Vector,LinkedList(实现方式,对比)

原址https://github.com/pzxwhc/MineKnowContainer/issues/18 _Collection 是 Java 集合的一个根接口,JDK 没有它的实现类。_...

Java基础---集合框架---迭代器、ListIterator、Vector中枚举、LinkedList、ArrayList、HashSet、TreeSet、二叉树、Comparator

为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 数组和集合类同是容器,有何不同? 数组虽然也可以...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA学习第三十五课(常用对象API)—Vector、LinkedList、ArrayList集合演示
举报原因:
原因补充:

(最多只允许输入30个字)