1. ArrayList概述:

ArrayList 是一个数组队列。相当于 动态数组。

与Java中的数组相比。它的容量能动态增长。它继承于AbstractList。实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。

ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的加入、删除、改动、遍历等功能。

ArrayList 实现了RandmoAccess接口,即提供了随机訪问功能。RandmoAccess是java中用来被List实现,为List提供高速訪问功能的。在ArrayList中,我们即能够通过元素的序号高速获取元素对象;这就是高速随机訪问。稍后,我们会比較List的“高速随机訪问”和“通过Iterator迭代器訪问”的效率。

ArrayList 实现了Cloneable接口,即覆盖了函数clone()。能被克隆。

ArrayList 实现java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。

和Vector不同,ArrayList中的操作不是线程安全的。

所以。建议在单线程中才使用ArrayList,而在多线程中能够选择Vector或者CopyOnWriteArrayList。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3Vhbmp1bmdhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

二 、构造函数

// 默认构造函数

ArrayList()

// capacity是ArrayList的默认容量大小。当因为添加数据导致容量不足时,容量会加入上一次容量大小的一半。

ArrayList(int capacity)

// 创建一个包括collection的ArrayList

ArrayList(Collection<? extends E> collection)

三、 API

/
Collection中定义的API

boolean             add(E object)

boolean             addAll(Collection<?

extends E> collection)

void                clear()

boolean             contains(Object object)

boolean             containsAll(Collection<?

> collection)

boolean             equals(Object object)

int                 hashCode()

boolean             isEmpty()

Iterator<E>         iterator()

boolean             remove(Object object)

boolean             removeAll(Collection<?

> collection)

boolean             retainAll(Collection<?> collection)

int                 size()

<T> T[]             toArray(T[] array)

Object[]            toArray()

// AbstractCollection中定义的API

void                add(int location, E object)

boolean             addAll(int location, Collection<? extends E> collection)

E                   get(int location)

int                 indexOf(Object object)

int                 lastIndexOf(Object object)

ListIterator<E>     listIterator(int location)

ListIterator<E>     listIterator()

E                   remove(int location)

E                   set(int location, E object)

List<E>             subList(int start, int end)

// ArrayList新增的API

Object               clone()

void                 ensureCapacity(int minimumCapacity)

void                 trimToSize()

void                 removeRange(int fromIndex, int toIndex)

四、遍历方式

package com.gao;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; public class ArraylistDemo {
public static void main(String args[]){
List<String> list = new ArrayList<String>();
list.add("Hello");
list.add("Hello Arraylist"); //方法1
Iterator it1 = list.iterator();
while(it1.hasNext()){
System.out.println(it1.next());
} //方法2
for(Iterator it2 = list.iterator();it2.hasNext();){
System.out.println(it2.next());
} //方法3
for(String tmp:list){
System.out.println(tmp);
} //方法4
for(int i = 0;i < list.size(); i ++){
System.out.println(list.get(i));
} }
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

java 集装箱 arraylist 用法的更多相关文章

  1. JAVA中ArrayList用法

    JAVA中ArrayList用法 2011-07-20 15:02:03|  分类: 计算机专业 |  标签:java  arraylist用法  |举报|字号 订阅     Java学习过程中做题时 ...

  2. 【java】ArrayList、Iterator用法

    package com.tn.collect; import java.util.ArrayList; import java.util.Iterator; class Product{ public ...

  3. Java入门系列:实例讲解ArrayList用法

    本文通过实例讲解Java中如何使用ArrayList类. Java.util.ArrayList类是一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征.可以随时从链表中添 ...

  4. java 遍历arrayList的四种方法

    package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public ...

  5. Java list的用法排序及遍历

    原文地址:http://baike.xsoftlab.net/view/208.html 1用法 ·ArrayList ·LinkedList 2排序 ·数字排序 ·中文排序 ·实体类排序 3遍历 · ...

  6. java中ArrayList 、LinkList区别

    转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.L ...

  7. Java中ArrayList类详解

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...

  8. JDK1.8源码(五)——java.util.ArrayList 类

    关于 JDK 的集合类的整体介绍可以看这张图,本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的. 1.ArrayList 定义 ArrayList 是一个用数组实 ...

  9. Java中Annotation用法

    其他还可以参考的地址 https://www.cnblogs.com/skywang12345/p/3344137.html Annotation Annotation其实是代码里的特殊标记,这些标记 ...

随机推荐

  1. 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项

    原文:性能优化--统计信息--SQLServer自动更新和自动创建统计信息选项 原文译自:http://www.mssqltips.com/sqlservertip/2766/sql-server-a ...

  2. 跳跃Java一些周期,双跳FOR周期

    今天写的代码写在一个双层for周期,目前仍在使用Iterator,大致意思是假定在第二个周期在排位赛中给了整个双回路跳. 刚開始,直接使用break.巴拉巴拉的敲了一堆代码,信心满满的就直接执行.等到 ...

  3. Repository、IUnitOfWork和IDbContext

    DDD 领域驱动设计-谈谈Repository.IUnitOfWork和IDbContext的实践 上一篇:<DDD 领域驱动设计-谈谈 Repository.IUnitOfWork 和 IDb ...

  4. ER模型

    一.什么是ER模型 实体-联系图(Entity-RelationDiagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器.独立于DBMS的ER图模型.通常将它简称为ER ...

  5. [ACM] POJ 3252 Round Numbers (的范围内的二元0数大于或等于1数的数目,组合)

    Round Numbers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8590   Accepted: 3003 Des ...

  6. 探索Scala(1)-- 运算符重载

    Scala语言运算符重载全然是语法层面的小把戏,本文记录我对Scala语言运算符重载的一些理解. 方法调用语法糖 调用方法时,Scala同意省略点号和圆括号,如以下代码所看到的: 把运算符映射成单词 ...

  7. Ubuntu14.04 工作区设置

    记ubuntu您可以切换工作区,但我按住 Ctrl+Alt+方向键 交换器,有没有反应,在这样的使用切换啊. 原来Ubuntu14.04默认并没有开启,仅仅须要设置一下就OK了. 1.打开系统设置.外 ...

  8. JTextField限制输入长度的完美解决方案(转)

    关于JTextField限制输入字符长度的问题,因为没提供现成的api,所以我们得自己动手,来实现这个功能,网上也有很多这样的资料,大多是在JTextField的Document的insertStri ...

  9. Pro Aspnet MVC 4读书笔记(4) - Working with Razor

    Listing 5-1. Creating a Simple Domain Model Class using System; using System.Collections.Generic; us ...

  10. zoj2977Strange Billboard (国家压缩+罗列)

    Strange Billboard Time Limit: 2 Seconds Memory Limit: 65536 KB The marketing and public-relations de ...