ArrayList 浅析示例

 1 package com.smbea.demo;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Iterator;
 5 import java.util.List;
 6 
 7 /**
 8  * 1、继承自接口 List、RandomAccess、Cloneable、Serializable;
 9  * 2、实现自类 AbstractList;
10  * 3、元素有顺序;
11  * 4、增删操作由于要移动元素,故此增删比较慢;
12  * 5、查询操作由于采用的是索引,故此查询比较快;
13  * 6、非线程安全的-轻量级;
14  * 7、由于实现了接口 RandomAccess,故此可以随机访问其中的元素;
15  * 8、由于实现了接口 Cloneable,故可以复制 ArrayList;
16  * 9、由于实现了接口 Serializable,故可以被序列化
17  * @author hapday
18  * @date 2016年7月9日 下午9:25:23
19  *
20  */
21 public class ArrayListDemo {
22 
23     public static void main(String[] args) {
24         elementRepeatableTest();
25         
26         elementSequentialTest();
27     }
28 
29     /**
30      * 验证【元素可重复】
31      */
32     public static void elementRepeatableTest() {
33         int num1 [] = new int[]{7,8,9};
34         int num2 [] = num1;
35         
36         List<Object> list = new ArrayList<Object> ();
37         list.add(1);
38         list.add(2);
39         list.add(3);
40         list.add(3);
41         list.add("string");
42         list.add(num1);
43         list.add(num2);
44         list.add("中文");
45         list.add("中文可重复");
46         list.add("中文可重复");
47         
48         System.out.println("*** 元素可重复(迭代器)  ***");
49         Iterator<Object> iterator = list.iterator();
50         while(iterator.hasNext()){
51             System.out.print(iterator.next() + " - ");
52         }
53         
54         System.out.println("\n*** 元素可重复(forEach)  ***");
55         for(Object object : list){
56             System.out.print(object + " - ");
57         }
58         
59         System.out.println("\n*** 元素可重复(toString())  ***");
60         System.out.print(list);
61     }
62 
63     /**
64      * 【元素有顺序】
65      */
66     public static void elementSequentialTest() {
67         List<Integer> list = new ArrayList<Integer> ();
68         for(int index = 1; index <= 100000; index++){
69             list.add(index);        // 加入 10 万的元素
70         }
71         
72         boolean exists = true;        // 是否存在:true-存在;false-不存在
73         int current = 0;    // 当前元素
74         int previous = 0;    // 上一个元素
75         Iterator<Integer> iterator = list.iterator();
76         while(iterator.hasNext()){
77             current = iterator.next();
78             if(current < previous){
79                 exists = false;
80             }
81             
82             previous = current;
83         }
84         
85         System.out.println("\n*** 元素有顺序  ***");
86         System.out.print("是否有顺序:" + exists);
87     }
88 
89 }

 

1、继承自接口 List、RandomAccess、Cloneable、Serializable;
2、实现自类 AbstractList;
3、元素有顺序;
4、增删操作由于要移动元素,故此增删比较慢;
5、查询操作由于采用的是索引,故此查询比较快;
6、非线程安全的-轻量级;
7、由于实现了接口 RandomAccess,故此可以随机访问其中的元素;
8、由于实现了接口 Cloneable,故可以复制 ArrayList;
9、由于实现了接口 Serializable,故可以被序列化
posted @ 2016-07-09 21:39  hapday  阅读(262)  评论(0编辑  收藏  举报