Java实例详细五分彩网站开发讲解ArrayList用法

Java.util.ArrayList类是五分彩网站开发haozbbs.comQ1446595067一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征。可以随时从链表中添加或删除一个元素。ArrayList实现了List接口。

大家知道,数组是静态的,数组被初始化之后,数组长度就不能再改变了。ArrayList是可以动态改变大小的。那么,什么时候使用Array(数组),什么时候使用ArrayList?答案是:当我们不知道到底有多少个数据元素的时候,就可使用ArrayList;如果知道数据集合有多少个元素,就用数组。

ArrayList:底层实现时数组,线程不安全,效率高。所以,查询快。修改、插入、删除慢。

LinkedList:底层实现是链表,线程不安全,效率高。所以,查询慢。修改、插入、删除快。

Vector:线程安全的,效率低。

1.ArrayList构造函数

ArrayList类支持3个构造方法。

Arraylist()

这个构造方法构造了一个空的链表。

ArrayList(Collection<? extends E> c)

这个构造方法构造了一个包含指定元素集合的链表,注意,这里的字符E是一个标记,用来表示集合中元素的类型。至于具体是什么类型,需要你在使用这个构造方法的时候来指定。

ArrayList(int initialCapacity)

这是第三个构造方法,构造了一个指定大小但内容为空的链表。initialCapacity参数就是初始容量大小。

举例来说,如果你要创建一个空的数组链表,用来存放String类型的对象,那么你可以像下面这样做:

ArrayList<String> list = new ArrayList<String>();

如果你需要创建一个指定初始容量的数组链表,你可以像下面这样做:

ArrayList<Integer> list = new ArrayList<Integer>(7);

注意:ArrayList类只支持对象类型,不支持 基础数据类型。就是说ArrayList对象只能存放对象,不能存放基础数据类型的数据。
2.ArrayList常用方法

下面是总结了一些比较常用的ArrayList类成员方法:

增加元素到链表中
    boolean add(Element e)
    增加指定元素到链表尾部.
    void add(int index, Element e)
    增加指定元素到链表指定位置.

从链表中删除元素
    void clear()
    从链表中删除所有元素.
    E remove(int index)
    删除链表中指定位置的元素.
    protected void removeRange(int start, int end)
    删除链表中从某一个位置开始到某一个位置结束的元素。

获取链表中的元素
    E get(int index)
    获取链表中指定位置处的元素.
    Object[] toArray()
    获取一个数组,数组中所有元素是链表中的元素.(即将链表转换为一个数组)

修改某个元素
    E set(int index, E element)
    将链表中指定位置上的元素替换成新元素。

搜索元素
    boolean contains(Object o)
    如果链表包含指定元素,返回true.
    int indexOf(Object o)
    返回元素在链表中第一次出现的位置,如果返回-1,表示链表中没有这个元素。
    int lastIndexOf(Object o)
    返回元素在链表中最后一次出现的位置,如果返回-1,表示链表中没有这个元素。

检查链表是否为空
    boolean isEmpty()
    返回true表示链表中没有任何元素.

获取链表大小
    int size()
    返回链表长度(链表包含元素的个数).

以上是ArrayList类中使用比较多的成员方法。每个方法的更详细的说明或其它没有提及到的方法,读者可以参考java官方api
3.ArrayList使用实例

1 import java.util.*;
2
3 public class ArrayListExamples {
4
5 public static void main(String args[]) {
6 // 创建一个空的数组链表对象list,list用来存放String类型的数据
7 ArrayList<String> list = new ArrayList<String>();
8
9 // 增加元素到list对象中
10 list.add("Item1");
11 list.add("Item2");
12 list.add(2, "Item3"); // 此条语句将会把“Item3”字符串增加到list的第3个位置。
14 list.add("Item4");
15
16 // 显示数组链表中的内容
17 System.out.println("The arraylist contains the following elements: "
18 + list);
19
20 // 检查元素的位置
21 int pos = list.indexOf("Item2");
22 System.out.println("The index of Item2 is: " + pos);
23
24 // 检查数组链表是否为空
25 boolean check = list.isEmpty();
26 System.out.println("Checking if the arraylist is empty: " + check);
27
28 // 获取链表的大小
29 int size = list.size();
30 System.out.println("The size of the list is: " + size);
31
32 // 检查数组链表中是否包含某元素
33 boolean element = list.contains("Item5");
34 System.out
35 .println("Checking if the arraylist contains the object Item5: "
36 + element);
37
38 // 获取指定位置上的元素
39 String item = list.get(0);
40 System.out.println("The item is the index 0 is: " + item);
41
42 // 遍历arraylist中的元素
43
44 // 第1种方法: 循环使用元素的索引和链表的大小
45 System.out
46 .println("Retrieving items with loop using index and size list");
47 for (int i = 0; i < list.size(); i++) {
48 System.out.println("Index: " + i + " - Item: " + list.get(i));
49 }
50
51 // 第2种方法:使用foreach循环
52 System.out.println("Retrieving items using foreach loop");
53 for (String str : list) {
54 System.out.println("Item is: " + str);
55 }
56
57 // 第三种方法:使用迭代器
58 // hasNext(): 返回true表示链表链表中还有元素
59 // next(): 返回下一个元素
60 System.out.println("Retrieving items using iterator");
61 for (Iterator<String> it = list.iterator(); it.hasNext();) {
62 System.out.println("Item is: " + it.next());
63 }
64
65 // 替换元素
66 list.set(1, "NewItem");
67 System.out.println("The arraylist after the replacement is: " + list);
68
69 // 移除元素
70 // 移除第0个位置上的元素
71 list.remove(0);
72
73 // 移除第一次找到的 "Item3"元素
74 list.remove("Item3");
75
76 System.out.println("The final contents of the arraylist are: " + list);
77
78 // 转换 ArrayList 为 Array
79 String[] simpleArray = list.toArray(new String[list.size()]);
80 System.out.println("The array created after the conversion of our arraylist is: "
81 + Arrays.toString(simpleArray));
82 }
83 }

原文地址:http://blog.51cto.com/13860117/2139358

时间: 2024-10-24 12:28:58

Java实例详细五分彩网站开发讲解ArrayList用法的相关文章

创建五分彩网站搭建数据库DBCA静默安装

测试环境有时候要求安装数据库实例,五分彩网站搭建[企鹅21717-93408]为了懒省事,就采用以下脚本: vi a.sh 内容 dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \ -gdbname mydb -sid mydb \ -sysPassword "MMMMM" -systemPassword "MMMMM" -serviceUse

java实现PBOC的TL分V分彩网站开发格式解析,超简单的解析

简介下TLV:分V分彩网站开发haozbbs.comQ1446595067 PBOC基本信息数据采用TLV(tag-length-value)的表示方式,即每项由tag标签(T),长度(L)和取值(V)构成. tag标签的属性为bit,由16进制表示,占1-2个字节长度.若tag标签的第一个字节(注:字节排序方向为从左往右数(b8~b0),第一个字节即为最左边的字节.bit排序规则同理.)的后四个bit为"1111",则说明该tag占两个字节,例如"9F33":否则

前端与移动五-分彩出租开发项目三

动画复习视差滚动插件五-分彩出租 dsluntan.com Q:3393756370 VX:17061863513视差滚动(Parallax Scrolling)指网页滚动过程中,多层次的元素进行不同程度的移动,视觉上形成立体运动效果的网页展示技术主要核心就是前景和背景以不同的速度移动,从而创造出3D效果. 这种效果可以给网站一个很好的补充.特性视差滚动效果酷炫,适合于个性展示的场合.视差滚动徐徐展开,适合于娓娓道来,讲故事的场合.视差滚动容易迷航,需要具备较强的导航功能.原理传统的网页的文字.

自学Java的我在五分彩源码出售帝都的北漂奋斗史

卧室里家人已经熟睡五分彩源码出售 <Q> 2952777280[链接] huaxianym.com ,虽然已经是深夜11点多了,我却一点睡意都没有,窗外的马路上依然是车水马龙,我坐在电脑桌旁,带着耳机听着汪峰的<北京,北京>,想着MV里面里的那些人,高楼林立,街景复杂,平凡的男女,为了生活,奔波在这座城市的角角落落. 2012年,为了当年的梦想,我离开了自己工作了5年的古城西安,来到了这座年轻人都向往的城市–北京,从此开启了我的北漂生活. 这一晃就是7年,其实在大学毕业后,2007

logback的使用和五分彩源码搭建详解

一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件. logback-core:其它两个模块的基础模块:五分彩源码搭建,企 娥:217 1793 408 logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能 二.logback取代log4j的理由: 1

五分彩源码搭建与机器学习

框架介绍 1.Apache Singa 是一个用于在大型数据集上训练深度学习的通用分布式深度学习平台,它是基于分层抽象的简单开发模型设计的. 五分彩源码搭建 QQ:2152876294 网址diguaym.com 它还支持各种当前流行的深度学习模型,有前馈模型(卷积神经网络,CNN),能量模型(受限玻尔兹曼机,RBM和循环神经网络,RNN),还为用户提供了许多内嵌层. 2.Amazon Machine Learning(AML)是一种让各种级别使用机器学习技术的开发人员可轻松掌握的一个服务,提供

快速排序--QuickSort,看完五分彩开奖网平台搭建自己就能写出来的快排思路推演

快速五分彩开奖网平台搭建论坛:haozbbs.com Q1446595067排序(QuickSort)介绍首先发明者竟然敢给自己发明的算法叫做QuickSort,这个名字闪不闪亮?好比别的武功叫做六脉神剑.降龙十八掌,我这个叫做"天下无敌神功".别的排序算法都是按照特点来起的,你这个不是应该叫分块递归排序法吗?或者和希尔一样,叫做霍尔排序也可以啊,这么高调是要干啥啊?我给了他一次机会,特意去查了一下,这个名字并不是江湖朋友抬爱给的,就是发明者自己起的,社会社会...不过看完这篇博客,理

性能监控工具的配置及使用五分彩平台搭建 - Spotlight On Oracle(oracle)

Spotlight是一个强五分彩平台搭建[征途源码论坛zhengtuwl.com]联系方式:QQ:2747044651有力的Oracle数据库实时性能诊断工具,提供了一个直观的.可视化的数据库活动展现.Spotlight可视化展现性能瓶颈,一旦某个指标超出可接受的阀值的话.而且,通过下钻功能,DBA可以简单.快速地追查性能瓶颈的底层原因[征途源码论坛zhengtuwl.com]联系方式:QQ:2747044651 Spotlight不需要在服五分彩源码下载五分彩源码下载五分彩平台搭建务器端安装代

MyEclispe SSH五分-彩平台出租项目框架搭建

基于MyEclipse2014,首先五分-彩平台出租 Q1446595067注意SHH框架的搭建顺序,Struts2-Spring-Hibernate1.搭建Struts2框架1.1首先创建Web Project,创建的时候注意勾选,会自动生成web.xml,否则自己手动创建比较麻烦**这里写图片描述1.2搭建Struts2框架.搭建SSH框架的方式有两种,第一种是自己下载jar包,手动导入,创建并编写配置文件,第二种通过MyEclipse自动创建,我们这里使用第二种! 右键项目-MyEclis