Java | ArrayList类的使用

导读:本篇文章讲解 Java | ArrayList类的使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、前言介绍

Java.util.ArrayList类是一个动态数组类型。

ArrayList对象既有数组的特征,也有链表的特征。

ArrayList实现了List接口。

ArrayList是可以动态改变大小的。

那么,什么时候使用Array(数组),什么时候使用ArrayList?

答案是:元素个数不确定时用ArrayList;若确定,就用数组。

二、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常用方法

  • 增加元素到链表中
    • 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

四、ArrayList使用实例

import java.util.*; 
public class ArrayListExamples {
     public static void main(String args[]) {
         // 创建一个空的数组链表对象list,list用来存放String类型的数据
         ArrayList<String> list = new ArrayList<String>();
 
         // 增加元素到list对象中
         list.add("Item1");
         list.add("Item2");
         list.add(2, "Item3"); // 此条语句将会把“Item3”字符串增加到list的第3个位置。
         list.add("Item4");
 
         // 显示数组链表中的内容
         System.out.println("The arraylist contains the following elements: "
                 + list);
 
         // 检查元素的位置
         int pos = list.indexOf("Item2");
         System.out.println("The index of Item2 is: " + pos);
 
         // 检查数组链表是否为空
         boolean check = list.isEmpty();
         System.out.println("Checking if the arraylist is empty: " + check);
 
         // 获取链表的大小
         int size = list.size();
         System.out.println("The size of the list is: " + size);
 
         // 检查数组链表中是否包含某元素
         boolean element = list.contains("Item5");
         System.out
                 .println("Checking if the arraylist contains the object Item5: "
                         + element);
 
         // 获取指定位置上的元素
         String item = list.get(0);
         System.out.println("The item is the index 0 is: " + item);
 
         // 遍历arraylist中的元素
 
         // 第1种方法: 循环使用元素的索引和链表的大小
         System.out
                 .println("Retrieving items with loop using index and size list");
         for (int i = 0; i < list.size(); i++) {
             System.out.println("Index: " + i + " - Item: " + list.get(i));
         }
 
         // 第2种方法:使用foreach循环
         System.out.println("Retrieving items using foreach loop");
         for (String str : list) {
             System.out.println("Item is: " + str);
         }
 
         // 第三种方法:使用迭代器
         // hasNext(): 返回true表示链表链表中还有元素
         // next(): 返回下一个元素
         System.out.println("Retrieving items using iterator");
         for (Iterator<String> it = list.iterator(); it.hasNext();) {
             System.out.println("Item is: " + it.next());
         }
 
         // 替换元素
         list.set(1, "NewItem");
         System.out.println("The arraylist after the replacement is: " + list);
 
         // 移除元素
         // 移除第0个位置上的元素
         list.remove(0);
 
         // 移除第一次找到的 "Item3"元素
         list.remove("Item3");
 
         System.out.println("The final contents of the arraylist are: " + list);
 
         // 转换 ArrayList 为 Array
         String[] simpleArray = list.toArray(new String[list.size()]);
         System.out.println("The array created after the conversion of our arraylist is: "+ Arrays.toString(simpleArray));
     }
 }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/103275.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!