package com.sky.arrayset;
//ArrayList、Vector和LinkedList
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Stack;
import java.util.Vector;
/**
?* 演示各种List的使用
?* @author sky
?*List能维护元素的次序,它允许元素重复
?*/
public abstract class TestList {
?
?/**初始化一个List*/
?public static void init(List list){
??if(list!=null){
???list.add("aaa");
???list.add("ccc");
???list.add("bbb");
???list.add("eee");
???list.add("ddd");
??}
?}
?
?/**输出List的内容*/
?public static void output(List list){
??if(list!=null){
???//根据列表下标遍历,使用list.size()获取列表中元素的个数
???for(int i=0;i<list.size();i++){
????System.out.println("\n\t遍历list:"+list.get(i));
???}
???//或者用迭代器遍历
???Iterator it=list.iterator();
???Object value=null;
???while(it.hasNext()){
????value=it.next();
???}
??}
??System.out.println();
?}
?
?/**使用ArrayList*/
?public static void testArrayList(){
??List list=new ArrayList();
??init(list);
??System.out.println("\n\t使用ArrayList:");
??output(list);
?}
?
?
?/**使用Vector*/
?public static void testVector(){
??List list=new Vector();
??init(list);
??System.out.println("\n\t使用Vector:");
??output(list);
?}
?
?/**使用LinkedList*/
?public static void testLinkedList(){
??List list=new LinkedList();
??init(list);
??System.out.println("\n\t使用LinkedList");
??output(list);
?}
?
?public static void main(String[] args){
??TestList.testArrayList();
??TestList.testVector();
??TestList.testLinkedList();
??
??List list=new ArrayList();
??init(list);
??//List支持元素重复
??list.add("aaa");
??list.add("bbb");
??System.out.println("\n\t插入原aaa,bbb后:");
??output(list);
??//指定元素出入的位置
??list.add(1, "fff");
??System.out.println("在下标为1处插入fff后:");
??output(list);
??
??List list2=new ArrayList();
??list2.add("ggg");
??list2.add("hhh");
??//将另一个列表中的元素插入到列表中
??list.addAll(list2);
??System.out.println("添加list2大元素后:");
??output(list);
??
??//判断列表是否包含某一元素
??//通过元素的equals方法,判断元素是否相等
??System.out.println("\n\t list包含aaa?"+list.contains("aaa"));
??//判断列表中是否包含了另一个列表中的所有元素
??System.out.println("\n\t list包含list2中的所有元素?"+list.containsAll(list2));
??//定位一个元素在列表中最先出现的位置
??System.out.println("\n\t aaa在list中第一次出现的位置:"+list.indexOf("aaa"));
??//定位一个元素在列表中最后出现的位置
??System.out.println("\n\t aaa在list中最后一次出现的位置:"+list.lastIndexOf("aaa"));
??
??
??//更新列表中某个位置的元素值
??list.set(2, "xxx");
??System.out.println("\n\t更新位置为2的元素为xxx后:");
??output(list);
??//删除列表中的某个元素,只删除第一次出现的出现的那个
??list.remove("aaa");
??System.out.println("\n\t删除元素aaa后");
??output(list);
??//删除列表中指定的位置的元素
??list.remove(1);
??System.out.println("\n\t删除下标为1的元素后");
??output(list);
??//删除列表中其他元素,只保留另一个列表中包含的元素
??list.retainAll(list2);
??System.out.println("\n\t删除list2包含以外的元素后");
??output(list);
??//删除列表中在另一个列表中也包含了的元素
??list.removeAll(list2);
??System.out.println("\n\t删除list2包含的元素后:");
??output(list);
??
??list.clear();//清空列表
??//判断列表是否有数据
??System.out.println("\n\t清空List后,list为空吗?"+list.isEmpty());
??init(list);
??//用列表中的某些元素构造一个新的列表
??list2=list.subList(1, 3);
??System.out.println("\n\t用list的第1个到第3个元素构造一个新的List:");
??output(list2);
??
??//用List特有的遍历器ListIterator遍历列表
??//与普通的Iterator不用,它允许从两个方向遍历列表
??ListIterator listIt=list.listIterator();
??System.out.println("\n\t正向遍历列表");
??while(listIt.hasNext()){
???System.out.println("\n\t正向遍历列表? :"+listIt.next());
??}
??System.out.println("\n\t");
??System.out.println("\n\t反向遍历列表");
??while(listIt.hasPrevious()){
???System.out.println("\n\t反向遍历列表:"+listIt.previous());
??}
??System.out.println();
??//也可以使用ListIterator从list中间插入和删除元素
??//只能在遍历当前位置进行添加和删除
??listIt.add("newadd");
??System.out.println("\n\t用ListIterator往列表中添加的元素newadd后:");
??output(list);
??listIt.next();
??listIt.remove();
??System.out.println("\n\t用ListIterator删除列表中元素后:");
??output(list);
??
??
??LinkedList linklist=new LinkedList();
??init(linklist);
??//添加元素到列表表头
??linklist.addFirst("fff");
??System.out.println("把fff放到列表表头后:");
??output(linklist);
??//添加元素到表尾
??linklist.addLast("eee");
??System.out.println("把eee放到列表尾后:");
??output(linklist);
??
??System.out.println("\n\t列表头元素:"+linklist.getFirst());
??System.out.println("\n\t列表尾元素:"+linklist.getLast());
??linklist.removeFirst();//删除列表表头的元素
??System.out.println("删除列表头元素后:");
??output(linklist);
??linklist.removeLast();//删除列表尾的元素
??System.out.println("删除列表的尾元素后:");
??output(linklist);
??
??Stack myStack=new Stack();
??//插入元素,是插入到尾部
??myStack.push("aaa");
??myStack.push("bbb");
??myStack.push("ccc");
??myStack.push("ddd");
??myStack.push("aaa");
??myStack.push("ddd");
??System.out.println("\n\t堆栈中的元素师:");
??output(myStack);
??System.out.println("\n\t堆栈尾部的元素:"+myStack.peek());
??System.out.println("\n\t堆栈头部的元素:"+myStack.pop());
?}
}
详细解决方案
ArrayList、Vector跟LinkedList
热度:613 发布时间:2012-08-22 09:50:35.0
相关解决方案
- java.util.ArrayList cannot be cast to com.hxll.hr.entity.SalaryStandard解决方法
- 在线求解决,js arrayList,该如何处理
- java口试要点-ArrayList list = new ArrayList(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象
- 关于 Vector 求解解决思路
- arrayList 的removeAll效率有关问题
- LinkedList 源码求解解决方法
- List<Object> list=new ArrayList<String>()异常
- ArrayList add步骤
- 求解java LinkedList 指定元素剔除,指定位置插入
- List<User> userList = new ArrayList<User>();解决思路
- List list = new ArrayList(); 是什么意思?解决思路
- Vector.clear 的有关问题
- vector push_back出错(release版本),该如何处理
- 怎么创建一个arraylist结构体数组,即元素为结构体的 arraylist
- 怎样让页面刷新后 ArrayList 值不丢失,该如何处理
- 把 ArrayList 的值存入Session 当从Session 中取值时遇到有关问题
- ArrayList.ToArray的有关问题 求救~
- ArrayList ,ilist,DataSet,哪个性能更好点。该如何处理
- ArrayList A 和ArrayList B,如果A和B中有重复的项,则删除掉,该怎么处理
- int[] 怎么快速 转换成 arraylist?
- ArrayList 显示有关问题
- vector 对象数组删除有关问题
- 一个关于"符号: 类 Vector"的问题
- 请教 Vector vetinon= new Vector();这个语句是什么意思啊?
- 关于继承super()问题,重载,arraylist。
- Vector vec=null
- 求助!Linkedlist<E>泛型类输出结果可以不显示为数组吗
- ArrayList,Vector, LinkedList的储存性能和特性
- javascript 兑现 Hashtable ArrayList StringBuffer
- Java容器类List、ArrayList、Vector及地图、HashTable、HashMap分别的区别