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,故可以被序列化

ArrayList 浅析示例的更多相关文章

  1. Java集合框架之ArrayList浅析

    Java集合框架之ArrayList浅析 一.ArrayList综述: 位于java.util包下的ArrayList是java集合框架的重要成员,它就是传说中的动态数组,用MSDN中的说法,就是Ar ...

  2. ArrayList代码示例

    package com.shushine.framework.第七章Java标准类库;import java.util.ArrayList;/** * * <p> * 描述该类情况 {@l ...

  3. 集合List和ArrayList的示例

    package chapter09; import java.util.ArrayList;import java.util.List; /* * List * ArrayList底层是数组 * 特点 ...

  4. JDK源码--ArrayList浅析

    先上别人的源码分析http://www.cnblogs.com/roucheng/p/jdkfenxi.html 这个链接也不错:http://www.jianshu.com/p/8d14b55fa1 ...

  5. LinkedList 浅析示例

    package com.smbea.demo; import java.util.Iterator; import java.util.LinkedList; import java.util.Lis ...

  6. HashSet 浅析示例

    * 1.继承自抽象类 AbstractSet,实现接口 Set.Cloneable.Serializable: * 2.元素无顺序: * 3.元素不可重复: * 4.采用哈希算法插入数据,插入速度快: ...

  7. Java ArrayList常用接口介绍及示例

    Java List 常用类型 类型 特征 ArrayList 随机访问元素快:中间插入与删除元素较慢:操作不是线程安全的 LinkedList 中间插入与删除操作代价较低,提供优化的顺序访问:随机访问 ...

  8. 集合简单总结 ArrayList、List、Hashtable、Dictionary

      ============================ 集合综述 ============================== 1.什么是泛型: 泛型就是限制了操作类型,意思如下:       ...

  9. Java中ArrayList和LinkedList的异同

    一:ArrayList和LinkedList的大致区别如下: 1.ArrayList是实现了基于动态数组的数据结构,ArrayList实现了长度可变的数组,在内存中分配连续的空间.遍历元素和随机访问元 ...

随机推荐

  1. iOS开发之使用XMPPFramework实现即时通信(一)

    关于XMPP的理论介绍在本篇博客中就不做赘述了,如何在我们之前的微信中加入XMPP协议来实现通信呢?下面将会介绍一下XMPP的基本的知识,让我们的微信可以实现互联通信.要做的准备工作是要有服务器支持X ...

  2. 小菜学习设计模式(一)—模板方法(Template)模式

    前言 设计模式目录: 小菜学习设计模式(一)—模板方法(Template)模式 小菜学习设计模式(二)—单例(Singleton)模式 小菜学习设计模式(三)—工厂方法(Factory Method) ...

  3. golang 字符串操作实例

    package main import s "strings" import "fmt" var p = fmt.Println func main() { p ...

  4. swift 中单例的写法

    在swift中单例的写法和oc的有所不同,在书写的时候又分很多种写法,,如果一个.swift 文件只创建了一个类,可以用那种dispatch_once的写法,如果一个.swift文件中有很多类的存在, ...

  5. 【Java基础】并发

    Num1:同步访问共享的可变数据 关键字Synchronized可以保证在同一时刻,只有一个线程可以执行某一个方法,或者某一个代码块.. 同步不仅仅理解为互斥的方式,如果没有同步,一个线程的变化就不能 ...

  6. c++中的重名问题

    看C++视频教程-范磊主讲(2.91G)视频学习笔记整理. 1.c++为什么要引入名字空间(namespace)? c++引入名字空间这个概念,是为了避免重名问题,比如说避免重复的函数名或者变量名引起 ...

  7. [转]C#中的string.Format()的JS版本

    String.prototype.format = function (args) { var result = this; if (arguments.length > 0) { var re ...

  8. [WCF编程]12.事务:服务事务编程(上)

    一.设置环境事务 默认情况下,服务类和操作没有环境事务,即使客户端事务传播到服务端也是如此. 尽管强制事务流从客户端传播过来,但服务端的环境事务依旧为null.为了启用环境事务,每个操作必须告诉WCF ...

  9. 微信扫码支付~官方DEMO的坑~参数不能自定义

    返回目录 由于微信在校验参数时采用了“微信服务端”校验,它的参数是前期定义好的,所以用户不能自己添加自定义的参数,你可以把参数写在Attach字段时,作为它的附加参数. 参数和返回值定义如下: pub ...

  10. 用eclipse做项目中常遇到的问题-如何创建并读取properties文件

    在用eclipse做项目开发的时候我们常常会将一些重要的内容写在配置文件里面, 特别是连接数据库的url,username,password等信息,我们常常会新建一个properties文件将所有信息 ...