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,故可以被序列化
时间: 2024-11-14 21:09:53

ArrayList 浅析示例的相关文章

ArrayList类示例1

ArrayList类示例2 import java.util.ArrayList; public class ArrayListDemo2 { //放入 public static void main(String[] args){ ArrayList<Integer> a1 = new ArrayList<Integer>(); //创建一个空的ArrayList对象 for(int i=0; i<10;i++){ Integer a2 = new Integer(i);/

ArrayList代码示例

package com.shushine.framework.第七章Java标准类库; import java.util.ArrayList; /** * * <p> * 描述该类情况 {@link 代表跟谁有关系} * </p> * * @author 王超 * @since 1.0 * @date 2016年10月24日 下午7:46:28 * @see 新建|修改|放弃 * @see com.shushine.framework.第七章Java标准类库.ArrayListDe

JDK源码--ArrayList浅析

先上别人的源码分析http://www.cnblogs.com/roucheng/p/jdkfenxi.html 具体需要注意的几点: 1.默认new ArrayList()时创建一个长度为0的数组.当添加新元素的时候,如果是这种方式添加的则直接将数组长度扩展到10. 2.数组为null和空数组new Object[0]的区别是:假设一个方法返回一个数组,如果它返回null,则调用方法必须先判断是否返回null,才能对放回数组进一步处理,而如果返回空数组,则无须null引用检查.鉴于此,返回数组

集合List和ArrayList的示例

package chapter09; import java.util.ArrayList;import java.util.List; /* * List * ArrayList底层是数组 * 特点:查询快,增删慢 * 常用过的三个方法:1.add();2.get();3.remove(); */public class TestList01 { public static void main(String[] args) { add(); get(); delete(); } /* * 定义

LinkedList 浅析示例

package com.smbea.demo; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; /** * 1.继承自接口 List.Deque.Cloneable.Serializable: * 2.实现自类 AbstractSequentialList: * 3.由于继承自抽象类 AbstractSequentialLis

HashSet 浅析示例

* 1.继承自抽象类 AbstractSet,实现接口 Set.Cloneable.Serializable: * 2.元素无顺序: * 3.元素不可重复: * 4.采用哈希算法插入数据,插入速度快: * 5.非线程安全,轻量级: * 6.由于实现了接口 Cloneable,故此可以被复制: * 7.由于实现了接口 Serializable,故此可以被序列化到磁盘上: 1 package com.smbea.demo; 2 3 import java.util.HashSet; 4 import

C#的ArrayList集合的使用

集合类是一种将各相同类型的对象集合起来的类,数组实质上也是集合类型中的一种. 集合主要是以线性结构存储结构 C#提供ArrayList类.Queue类.Stack类 1.ArrayList类简介: ArrayList类可以动态地添加和删除元素. ArrayList类相当于一种高级的动态数组,是Array类的升级版本,但它并不等同于数组. 2.与数组的比较: (1)数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充 (2)ArrayList提供添加,删除,插入某一范围元素的方法,但

C#之 ArrayList概述

ArrayList 类相当于一种高级的动态数组. 是Array类的升级版本. 概述: ArrayList 位于 System.Collections命名空间下 可以动态的删除和添加元素, 从某种意义上来讲, 他是数组的高级版, 但是并不等同于数组. 与数组相比, ArrayList 类提供了以下几个功能: ? ? 1. 数组的长度是固定的(一旦声明,不可更改, 超出将数组越界); ArrayList 的长度可以根据需要自动扩充. ? ? 2. ArrayList 提供了添加.删除.和插入某范围内

Java学习笔记之ArrayList基本用法

更多信息可关注我的个人博客:贱贱的梦想 ArrayList简介 ArrayList是一个其容量能够动态增长的动态数组.它继承了AbstractList,实现了List.RandomAccess, Cloneable, java.io.Serializable. 基本的ArrayList,长于随机访问元素,但是在List中间插入和移除元素时较慢.同时,ArrayList的操作不是线程安全的!一般在单线程中才使用ArrayList,而在多线程中一般使用Vector或者CopyOnWriteArray