数组线性表ArrayList
来源:互联网 发布:朝鲜核试验 知乎 编辑:程序博客网 时间:2024/05/16 17:54
Java提供ArrayList类来存储不限定个数的对象。下面是ArrayList中的一些方法。
ArrayList()
创建一个空的线性表
add(o: Object)
在这个线性表的末尾追加一个新元素o
add(index: int, o: Object)
在这个线性表中的特定下标处增加一个新元素o
clear()
从这个线性表中删除所有的元素
contains(o: Object)
如果这个线性表包含元素o则返回true
get(index: int)
返回这个线性表在特定下标处的元素
indexOf(o: Object)
返回这个线性表中第一个匹配元素的下标
isEmpty()
如果这个线性表不包含元素则返回true
lastIndexOf(o: Object)
返回这个线性表中最后一个匹配元素的下标
remove(o: Object)
从这个线性表中删除元素o
size()
返回这个线性表中元素的个数
remove(index: int)
删除指定下标处的元素
set(index: int, o: Object)
设置在特定下标处的元素
下面是使用ArrayList存储对象的一个例子
public class TextArrayList { public static void main(String[] args) { java.util.ArrayList cityList = new java.util.ArrayList(); cityList.add("London"); cityList.add("Denver"); cityList.add("Paris"); cityList.add("Miami"); cityList.add("Seoul"); cityList.add("Tokyo"); System.out.println("List size?" + cityList.size()); System.out.println("Is Miami in the list?" + cityList.contains("Miami")); System.out.println("The location of Denver in the list?" + cityList.indexOf("Denver")); System.out.println("Is the list empty?" + cityList.isEmpty()); cityList.add(2,"Xian"); cityList.remove("Miami"); cityList.remove(1); System.out.println(cityList.toString()); for (int i = cityList.size() - 1; i >= 0; i--) { System.out.print(cityList.get(i) + ""); } System.out.println(); java.util.ArrayList list = new java.util.ArrayList(); list.add(new Circle4(2)); list.add(new Circle4(3)); System.out.println("The area of the circle?" + ((Circle4)list.get(0)).getArea()); }}
输出
Is Miami in the list? true
The location of Denver in the list? 1
Is the list empty? false
[London, Xian, Paris, Seoul, Tokyo]
Tokyo Seoul Paris Xian London
The area of the circle? 12.566370614359172
程序使用无参构造方法创建一个ArrayList(第3行),add方法将Object的任一实例加入线性表中。由于String是Object的一个子类,所以字符串可以加入到线性表中。add方法(第4~9行)将一个对象加入到线性表的末尾。所以,在执行完cityList.add("London")(第4行)之后,这个线性表包含[London]
执行完cityList.add("Denver")(第5行)后,这个线性表包含[London,Denver]
在加入Paris、Miami、Seoul和Tokyo之后(第6~9行),这个线性表包含[London,Denver,Paris,Miami,seoul,Tokyo]
调用size()(第10行)返回这个线性表的大小,线性表的当前大小为6.调用contains("Miami")(第11行)检测这个对象是否在这个线性表中。在这种情况下,它返回true,因为Miami在这个线性表中。调用indexOf("Denver")(第12行)返回该对象在线性表中的索引值,这里它的值为1。如果对象不在这个线性表中,它返回-1。isEmpty()方法(第13行)检测这个线性表是否为空。因为当前列表不为空,所以它返回false。
语句cityList.add(2,"Xian")(第14行)在这个线性表的指定下标位置插入一个对象。该语句执行完之后,线性表变成[London,Denver,Xina,Paris,Miami,Seoul,Tokyo]
语句cityList.remove("Miami")(第15行)从线性表中删除该对象。该语句执行后,线性表就变成[London,denver,Xian,Paris,Seoul,Tokyo]
语句cityList.remove(1)(第16行)从线性表中删除指定下标位置的对象,该语句执行后,线性表变成[London,Xian,Paris,Seoul,Tokyo]
第17行的语句相当于
System.out.println(cityList);
方法toString()返回表示线性表的字符串,其形式为[e0.toString(),e1.toString(),...,ek.toString()],这里的e0,e1,...,ek都是线性表中的元素。
方法get(index)(第19行)返回指定下标位置处的对象。
可以像使用数组一样使用ArrayList对象,但是两者还是有很多不同之处。下表列出了它们的异同点。
一旦创建了一个数组,它的大小就确定下来了。可以使用方括号访问数组元素(例如:a[index])。当创建ArrayList后,它的大小为0.如果元素不在线性表中,就不能使用get和set方法。向线性表中添加、插入和删除是比较容易的,而向数组中添加、插入和删除元素是比较复杂的。为了实现这些操作,必须编写代码操纵这个数组。
数组和ArrayList之间的异同创建数组、ArrayListObject[] a =new Object[10]ArrayList list = new.ArrayList()引用元素a[index]list.get(index)更新元素a[index] = "London";list.set(index, "London");返回大小a lengthlist.size()添加一个新元素list.add("London")插入一个新元素list.add(index,"London")删除一个指定下标的元素list.remove(index)删除一个特定内容的元素list.remove(Object)删除所有元素list.clear()
- 数组线性表ArrayList
- 数组线性表ArrayList的内部实现
- 数组线性表ArrayList类(运用与API实现)
- JAVA采用数组结构实现一个线性表,可以增删改查,类似于ArrayList
- Java探索之旅(10)——数组线性表ArrayList和字符串生成器StringBuffer/StringBuilder
- Java数据结构笔记2——数组线性表类(ArrayList)
- java.util.ArrayList 线性表类
- java自己实现顺序线性表ArrayList
- 线性表(线性存储)之ArrayList源码深度解析
- 线性表-数组实现
- 数组和线性表
- 线性表之数组
- 线性表数组实现
- java 集合 之 链表和线性表以及ArrayList的各方法的介绍及示例 及 ArrayList与LinkedList的区别分析 及 ArrayList与Array(数组)的区别
- 数组ArrayList
- ArrayList数组
- 数组、ArrayList
- 用数组实现线性表
- 访问 IIS 元数据库失败解决方法
- 关于继承的一些知识
- 动态绑定
- 对象转换和instanceof运算符
- android : emulater命令详解
- 数组线性表ArrayList
- protected数据和方法
- 抽象类
- 为什么要用抽象方法
- 关于抽象类的几个关注点
- 算法分析
- 统一建模语言(UML)
- 线性表(用数组存储数据)
- 何时使用异常