java arraylist<>用法_Java入门系列:实例讲解ArrayList用法

本文通过实例讲解Java中如何使用ArrayList类。

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

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

1.ArrayList构造函数

ArrayList类支持3个构造方法。

Arraylist()

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

ArrayList(Collection extends E> c)

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

ArrayList(int initialCapacity)

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

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

ArrayList list = new ArrayList();

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

ArrayList list = new ArrayList(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 classArrayListExamples {4

5 public static voidmain(String args[]) {6 //创建一个空的数组链表对象list,list用来存放String类型的数据

7 ArrayList list = new ArrayList();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.out35 .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.out46 .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 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(newString[list.size()]);80 System.out.println("The array created after the conversion of our arraylist is: "

81 +Arrays.toString(simpleArray));82 }83 }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值