作者Nomad:ArrayLists

什么是ArrayList

在Java中,数组用于同时存储多个项目,易于存储

使用结构。 当您要存储多条数据并拥有数据时

类型相互关联(例如,您可以使用的员工姓名,地址,工作时间

使用一组并行数组或创建一个Employee类并使用一个数组

容纳物体。

使用数组的问题是必须在以下情况下设置数组的大小

它被创建。 例如:


Employee[] emparray = new Employee[10]; 
这将创建一个只能容纳10个员工对象的数组。 如果您尝试

在此数组中存储10个以上的元素时,Java会引发错误异常。

最初必须设置此类数组的大小非常有限,因为您可能会

不知道您最多(或完全)有10名员工。

解决此问题的一种方法是使用一些内置的数据结构

Java中找到的类。 这种数据结构的主要目的是使

您可以在其中存储不受Employee约束的东西

大小,这很容易从数据结构中检索数据。

Java提供了一种称为ArrayList的数据结构。 这就像一个

链表和数组的组合,您可以存储任意数量的内容

在这种结构中,它将相应地增长。 您还可以访问以下元素

通过使用索引值来实现这种结构,就像使用Array一样。

使用ArrayLists有一些限制是它们只能处理Class

对象,并且无法轻松处理基本数据类型,例如整数和双精度型。

如果要将此类信息存储在ArrayList中,则必须首先

将其转换为对象数据类型。

Java 1.4及更低版本希望您将int封装为Integers,将double转换为Doubles

等 这是Java 1.4片段的样子:


List array= new ArrayList();
for (int i= 0; i < 10; i++) {
   array.add(new Integer(i));
   int j= ((Integer)array.get(i)).intValue(); // get value back 
...这就是Java 1.5或更高版本中的相同资源:

List<Integer> array= new ArrayList<Integer>();
for (int i= 0; i < 10; i++) {
   arrray.add(i);
   int j= array.get(i); // get value back 
ArrayList的第二个限制是要使用搜索功能,您必须

在类中添加一些特殊方法。 这些方法是equals(),

hashCode()和compareTo()方法。 稍后将对此进行解释。

创建ArrayList是通过导入java.util。*完成的。 包装或只是

单个类本身:导入java.util.ArrayList类,然后创建一个

ArrayList类的实例:


import java.util.*;
...
List<PersonClass> arlist = new ArrayList<PersonClass>(); 
基本上,创建ArrayList对象(在本例中为arlist)时的操作

是使用将用于创建对象的类的名称

将存储在列表中。 此类名称位于一对<>之间

(<Employee>)符号并放置在ArrayList类名称之后

在创建arraylist对象时使用。 在这种情况下,

用于创建要存储在此arraylist中的对象的是Employee类。

使用数组列表

创建ArrayList后,您可以创建将添加的对象,并

然后将它们添加到列表中。 这是通过add()命令完成的:


PersonClass temp = new PersonClass ("NW123");
arlist.add(temp); 
此命令将对象temp添加到列表的末尾。 如果要添加

使用以下命令将其定位到列表中的特定索引位置:


PersonClass temp = new PersonClass ("NW123");
arlist.add(3, temp); 
这会将所有元素“向下”移动,并将此新对象置于位置3。

如果要用新对象替换位置3的元素,

创建后,您将使用:


PersonClass temp = new PersonClass ("E123");
arlist.set(3, temp); 
如果要删除元素5,则可以使用:

arlist.remove(5); 
要使对象位于位置5,可以使用:

Employee x;
x = arlist.get(5); 
获取ArrayList对象的大小及其当前有多少个元素

持有),您将使用:


int empsize = arlist.size(); 
如果要查看尺寸,请使用:

System.out.println("The size is "+empsize () ); 
要遍历列表并访问每个元素,可以使用for()循环:

for(PersonClass e : arlist ) {
   System.out.println("The name is "+e.getLname() );
} 
for()循环将以相同顺序遍历arraylist中的所有元素

就像Iterator一样。 迭代器从第一个开始对List进行迭代

元素,最后一个元素结束; 因此obove循环会访问其中的每个元素

与以下循环相同的顺序:


for( int i=0; i<arlist.size(); i++) {
   PersonClass e = arlist.get( i );
   System.out.println("The info is "+e.getEmpID(), +e.getLname() );
}
这里,ArrayList上的size()方法用于标记循环的结束。

i变量用作ArrayList索引,并与get()方法一起使用

返回对象。 PersonClass对象e仅用于保存

引用列表中的对象。

这样就完成了对ArrayList类的简短介绍。 还有另一个

列表实现:行为类似于ArrayList的LinkedList。

两种类型的列表都有其优缺点:ArrayList非常快

当您要访问给定索引值的元素时。 一个LinkedList非常

删除或插入列表中任何位置的元素时速度很快。

给定算法的特征,请选择正确的列表类型。

请注意,您的算法本身应将特定列表称为对象

类型为“列表”,即只是接口类型。 这使得选择非常容易

需要时的另一种列表; 只是列表的构造部分

了解将实际构造哪种类型的列表。

Collections框架中有更多可用的数据结构。 他们是

其他文章的主题。

From: https://bytes.com/topic/java/insights/656892-author-nomad-arraylists

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值