ArrayList 浅析示例

时间:2021-04-21 16:00:20
 package com.smbea.demo;

 import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; /**
* 1、继承自接口 List、RandomAccess、Cloneable、Serializable;
* 2、实现自类 AbstractList;
* 3、元素有顺序;
* 4、增删操作由于要移动元素,故此增删比较慢;
* 5、查询操作由于采用的是索引,故此查询比较快;
* 6、非线程安全的-轻量级;
* 7、由于实现了接口 RandomAccess,故此可以随机访问其中的元素;
* 8、由于实现了接口 Cloneable,故可以复制 ArrayList;
* 9、由于实现了接口 Serializable,故可以被序列化
* @author hapday
* @date 2016年7月9日 下午9:25:23
*
*/
public class ArrayListDemo { public static void main(String[] args) {
elementRepeatableTest(); elementSequentialTest();
} /**
* 验证【元素可重复】
*/
public static void elementRepeatableTest() {
int num1 [] = new int[]{7,8,9};
int num2 [] = num1; List<Object> list = new ArrayList<Object> ();
list.add(1);
list.add(2);
list.add(3);
list.add(3);
list.add("string");
list.add(num1);
list.add(num2);
list.add("中文");
list.add("中文可重复");
list.add("中文可重复"); System.out.println("*** 元素可重复(迭代器) ***");
Iterator<Object> iterator = list.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next() + " - ");
} System.out.println("\n*** 元素可重复(forEach) ***");
for(Object object : list){
System.out.print(object + " - ");
} System.out.println("\n*** 元素可重复(toString()) ***");
System.out.print(list);
} /**
* 【元素有顺序】
*/
public static void elementSequentialTest() {
List<Integer> list = new ArrayList<Integer> ();
for(int index = 1; index <= 100000; index++){
list.add(index); // 加入 10 万的元素
} boolean exists = true; // 是否存在:true-存在;false-不存在
int current = 0; // 当前元素
int previous = 0; // 上一个元素
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
current = iterator.next();
if(current < previous){
exists = false;
} previous = current;
} System.out.println("\n*** 元素有顺序 ***");
System.out.print("是否有顺序:" + exists);
} }
1、继承自接口 List、RandomAccess、Cloneable、Serializable;
2、实现自类 AbstractList;
3、元素有顺序;
4、增删操作由于要移动元素,故此增删比较慢;
5、查询操作由于采用的是索引,故此查询比较快;
6、非线程安全的-轻量级;
7、由于实现了接口 RandomAccess,故此可以随机访问其中的元素;
8、由于实现了接口 Cloneable,故可以复制 ArrayList;
9、由于实现了接口 Serializable,故可以被序列化