ArrayList用法

阅读 76

2022-02-05

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAeG1oLXN4aC0xMzE0,size_18,color_FFFFFF,t_70,g_se,x_161、什么是ArrayList

 

    ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:

 

动态的增加和减少元素

实现了ICollection和IList接口

灵活的设置数组的大小

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

 

2、如何构建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对象只能存放对象,不能存放基础数据类型的数据。

 

初始化ArrayList的两种方法

  方式一:

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

      String str01 = String("str01");

      String str02 = String("str02");

      list.add(str01);

      list.add(str02);

  方式二:

      ArrayList<String> list = new ArrayList<String>(){{add("str01"); add("str02");}};  

 

3.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()

返回链表长度(链表包含元素的个数).

4.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个位置。

13 list.add("Item4");

14 

15 // 显示数组链表中的内容

16 System.out.println("The arraylist contains the following elements: "

17 + list);

18 

19 // 检查元素的位置

20 int pos = list.indexOf("Item2");

21 System.out.println("The index of Item2 is: " + pos);

22 

23 // 检查数组链表是否为空

24 boolean check = list.isEmpty();

25 System.out.println("Checking if the arraylist is empty: " + check);

26 

27 // 获取链表的大小

28 int size = list.size();

29 System.out.println("The size of the list is: " + size);

30 

31 // 检查数组链表中是否包含某元素

32 boolean element = list.contains("Item5");

33 System.out

34 .println("Checking if the arraylist contains the object Item5: "

35 + element);

36 

37 // 获取指定位置上的元素

38 String item = list.get(0);

39 System.out.println("The item is the index 0 is: " + item);

40 

41 // 遍历arraylist中的元素

42 

43 // 第1种方法: 循环使用元素的索引和链表的大小

44 System.out

45 .println("Retrieving items with loop using index and size list");

46 for (int i = 0; i < list.size(); i++) {

47 System.out.println("Index: " + i + " - Item: " + list.get(i));

48 }

49 

50 // 第2种方法:使用foreach循环

51 System.out.println("Retrieving items using foreach loop");

52 for (String str : list) {

53 System.out.println("Item is: " + str);

54 }

55 

56 // 第三种方法:使用迭代器

57 // hasNext(): 返回true表示链表链表中还有元素

58 // next(): 返回下一个元素

59 System.out.println("Retrieving items using iterator");

60 for (Iterator<String> it = list.iterator(); it.hasNext();) {

61 System.out.println("Item is: " + it.next());

62 }

63 

64 // 替换元素

65 list.set(1, "NewItem");

66 System.out.println("The arraylist after the replacement is: " + list);

67 

68 // 移除元素

69 // 移除第0个位置上的元素

70 list.remove(0);

71 

72 // 移除第一次找到的 "Item3"元素

73 list.remove("Item3");

74 

75 System.out.println("The final contents of the arraylist are: " + list);

76 

77 // 转换 ArrayList 为 Array

78 String[] simpleArray = list.toArray(new String[list.size()]);

79 System.out.println("The array created after the conversion of our arraylist is: "

80 + Arrays.toString(simpleArray));

81 }

82 }

复制代码

输出:

 

The arraylist contains the following elements: [Item1, Item2, Item3, Item4]

The index of Item2 is: 1

Checking if the arraylist is empty: false

The size of the list is: 4

Checking if the arraylist contains the object Item5: false

The item is the index 0 is: Item1

Retrieving items with loop using index and size list

Index: 0 - Item: Item1

Index: 1 

 

精彩评论(0)

0 0 举报