zoukankan      html  css  js  c++  java
  • java集合之列表:ArrayList、Vector、LinkedList

      1 package com.jdk7.chapter4;
      2 
      3 import java.util.ArrayList;
      4 import java.util.LinkedList;
      5 import java.util.List;
      6 import java.util.ListIterator;
      7 import java.util.Stack;
      8 import java.util.Vector;
      9 /**
     10  * java中集合的形式一》列表(有序允许重复)
     11  * 列表的三种表现形式》ArrayList、Vector、LinkedList
     12  * 其中Stack extends Vector
     13  * 另: List的遍历器(ListIterator)可以操作列表元素
     14  * @author Administrator
     15  *
     16  */
     17 public class ListTest {
     18     public static void init(List list){
     19         if(list!=null){
     20             list.add("aaa");
     21             list.add("bbb");
     22             list.add("ddd");
     23             list.add("eee");
     24         }
     25     }
     26     
     27     public static void printList(List list){
     28         if(list!=null){
     29             for(int i=0;i<list.size();i++){
     30                 System.out.print(list.get(i)+" ");
     31             }
     32         }
     33         System.out.println();
     34     }
     35     
     36     public static void arrayList(){
     37         List arrayList = new ArrayList();
     38         init(arrayList);
     39         printList(arrayList);
     40     }
     41     
     42     public static void vector(){
     43         List list = new Vector();
     44         init(list);
     45         printList(list);
     46     }
     47     
     48     public static void linkedList(){
     49         List list = new LinkedList();
     50         init(list);
     51         printList(list);
     52     }
     53     
     54     public static void main(String[] args) {
     55         System.out.println("===============ArrayList集合==================");
     56         arrayList();
     57         System.out.println("===============Vector集合==================");
     58         vector();
     59         System.out.println("===============LinkedList集合==================");
     60         linkedList();
     61         System.out.println("===============操作ArrayList集合元素==================");
     62         List list = new ArrayList();
     63         list.add("1111");
     64         list.add("2222");
     65         list.add("3333");
     66         list.add(0, "eeee");
     67         list.indexOf("2222");
     68         printList(list);
     69         System.out.println("=================================");
     70         List list1 = new ArrayList();
     71         list1.addAll(list);
     72         list1.add("bbbb");
     73         printList(list1);
     74         System.out.println("数组list1包含数组list: "+list1.containsAll(list));
     75         list1.set(1, "vvvv");
     76         printList(list1);
     77         System.out.println("===============List的遍历器实现对集合元素的操作==================");
     78         ListIterator listIt = list.listIterator();
     79         System.out.print("正向遍历结果: ");
     80         while(listIt.hasNext()){
     81             System.out.print(listIt.next()+" ");
     82         }
     83         System.out.println();
     84         System.out.print("逆向遍历结果: ");
     85         while(listIt.hasPrevious()){
     86             System.out.print(listIt.previous()+" ");
     87         }
     88         System.out.println();
     89         //在遍历器所在位置对数组元素进行操作,遍历器位置通过ListIterator的next()和previous()进行变动
     90         listIt.next();
     91         listIt.add("ffff");
     92         printList(list);
     93         System.out.println("=================================");
     94         listIt.next();
     95         listIt.remove();
     96         printList(list);
     97         System.out.println("===============Vector类的子类Stack类操作集合元素==================");
     98         Stack myStack =  new Stack();
     99         myStack.push("hhhh");
    100         myStack.push("eeee");
    101         myStack.push("llll");
    102         myStack.push("oooo");
    103         printList(myStack);
    104         System.out.println("================堆栈尾部元素及堆栈所有元素=================");
    105         System.out.println("堆栈尾部元素: "+myStack.peek());
    106         printList(myStack);
    107         System.out.println("================弹出的堆栈尾部元素及堆栈所有元素=================");
    108         System.out.println("弹出的堆栈尾部元素: "+myStack.pop());
    109         printList(myStack);
    110         System.out.println("================操作LinkedList集合元素=================");
    111         LinkedList linkedList = new LinkedList();
    112         linkedList.addAll(list);
    113         printList(linkedList);
    114         System.out.println("在集合头部插入'start'");
    115         linkedList.addFirst("start");
    116         printList(linkedList);
    117         System.out.println("在集合尾部插入'end'");
    118         linkedList.addLast("end");
    119         printList(linkedList);
    120         System.out.println("删除集合头部元素'start'");
    121         linkedList.removeFirst();
    122         printList(linkedList);
    123         System.out.println("删除集合尾部元素'end'");
    124         linkedList.removeLast();
    125         printList(linkedList);
    126         System.out.println("集合首尾插入元素'aaaa'");
    127         linkedList.addFirst("aaaa");
    128         linkedList.addLast("aaaa");
    129         printList(linkedList);
    130         System.out.println("删除元素'aaaa'");
    131         linkedList.remove("aaaa");
    132         printList(linkedList);
    133     }
    134 }
    135 
    136 
    137 执行结果为:
    138 ===============ArrayList集合==================
    139 aaa bbb ddd eee 
    140 ===============Vector集合==================
    141 aaa bbb ddd eee 
    142 ===============LinkedList集合==================
    143 aaa bbb ddd eee 
    144 ===============操作ArrayList集合元素==================
    145 eeee 1111 2222 3333 
    146 =================================
    147 eeee 1111 2222 3333 bbbb 
    148 数组list1包含数组list: true
    149 eeee vvvv 2222 3333 bbbb 
    150 ===============List的遍历器实现对集合元素的操作==================
    151 正向遍历结果: eeee 1111 2222 3333 
    152 逆向遍历结果: 3333 2222 1111 eeee 
    153 eeee ffff 1111 2222 3333 
    154 =================================
    155 eeee ffff 2222 3333 
    156 ===============Vector类的子类Stack类操作集合元素==================
    157 hhhh eeee llll oooo 
    158 ================堆栈尾部元素及堆栈所有元素=================
    159 堆栈尾部元素: oooo
    160 hhhh eeee llll oooo 
    161 ================弹出的堆栈尾部元素及堆栈所有元素=================
    162 弹出的堆栈尾部元素: oooo
    163 hhhh eeee llll 
    164 ================操作LinkedList集合元素=================
    165 eeee ffff 2222 3333 
    166 在集合头部插入'start'
    167 start eeee ffff 2222 3333 
    168 在集合尾部插入'end'
    169 start eeee ffff 2222 3333 end 
    170 删除集合头部元素'start'
    171 eeee ffff 2222 3333 end 
    172 删除集合尾部元素'end'
    173 eeee ffff 2222 3333 
    174 集合首尾插入元素'aaaa'
    175 aaaa eeee ffff 2222 3333 aaaa 
    176 删除元素'aaaa'
    177 eeee ffff 2222 3333 aaaa 
  • 相关阅读:
    面试题
    关于TDD的想法
    GAMS 基础语法
    不要迷信数据
    在Microsoft AJAX Library下JavaScript的面向对象开发
    应用OOP的设计过程演化(一)
    应用OOP的设计过程演化(二)
    探索AJAX中的消息传输模式(一)
    应用OOP的设计过程演化(三)
    SecureCRT 6.0.2和SecureFX 6.0.2 软件 及 注册机
  • 原文地址:https://www.cnblogs.com/celine/p/8455401.html
Copyright © 2011-2022 走看看