Java 集合框架ArrayList

原文:https://www.studytonight.com/java/arraylist-in-collection-framework.php

此类提供基于数组的数据结构的实现,该数据结构用于以线性顺序存储元素。这个类实现了列表接口和一个抽象的AbstractList类。它创建了一个基于元素强度增长的动态数组。

Java ArrayList类声明

  public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
  1. ArrayList 支持动态数组,可以根据需要增长。
  2. 它可以包含重复元素,并且还保持插入顺序。
  3. 操作很慢,因为如果从ArrayList中删除任何元素,都需要进行大量的移位。
  4. ArrayList不同步。
  5. ArrayList 允许随机访问,因为它基于索引工作。

ArrayList构造器

Arraylist 类有三个构造器,可用于从空集合或其他集合的元素创建 ArrayList。

  ArrayList()  // It creates an empty ArrayList
ArrayList( Collection C ) // It creates an ArrayList that is initialized with elements of the Collection C
ArrayList( int capacity ) // It creates an ArrayList that has the specified initial capacity

示例:创建ArrayList

让我们创建一个ArrayList来存储字符串元素。这里的列表是空的,因为我们没有添加元素。

import java.util.*;
class Demo
{
  public static void main(String[] args)
  {   
    // Creating an ArrayList
    ArrayList< String> fruits = new ArrayList< String>();

    // Displaying Arraylist
    System.out.println(fruits);
  }
}

[]

ArrayList方法

下表包含ArrayList的方法。我们可以用它们来操纵它的元素。

| 方法 | 描述 | | 无效添加(整数索引,E 元素) | 它在列表的指定位置插入指定的元素。 | | boolean add(E) | 它在列表的末尾追加指定的元素。 | | 布尔地址(集合 extends E> c) | 它将指定集合中的所有元素追加到该列表的末尾。 | | 布尔地址(整数索引,集合 extends E> c) | 它从列表的指定位置开始,追加指定集合中的所有元素。 | | 清空() | 它将从该列表中移除所有元素。 | | 无效保证容量(整数要求容量) | 它增强了ArrayList实例的容量。 | | E get(整数索引) | 它从列表的特定位置获取元素。 | | boolean isEmpty() | 如果列表为空,则返回 true,否则返回 false。 | | int lastIndexOf(Object o) | 它返回指定元素在此列表中最后一次出现的索引,如果列表不包含此元素,则返回-1。 | | object[]toaarray() | 它返回一个数组,该数组以正确的顺序包含列表中的所有元素。 | | t[]toaarray(t[]a) | 它返回一个数组,该数组以正确的顺序包含列表中的所有元素。 | | 对象克隆() | 它返回一个ArrayList的浅拷贝。 | | 布尔包含(对象 0) | 如果列表包含指定的元素,则返回 true | | int indexOf(Object o) | 它返回指定元素在列表中第一次出现的索引,如果列表不包含该元素,则返回-1。 | | e 移除(整数索引) | 它移除列表中指定位置的元素。 | | 布尔删除(对象 0) | 它移除指定元素的第一个匹配项。 | | 布尔移除所有(集合> c) | 它从列表中移除所有元素。 | | 布尔移除 If(谓词 super E>过滤器) | 它从列表中移除满足给定谓词的所有元素。 | | protected void remove range(int from index,int toIndex) | 它会移除给定范围内的所有元素。 | | void replace all(unaryooperator运算符) | 它用指定的元素替换列表中的所有元素。 | | 请参阅 trimToSize() | 它将此ArrayList实例的容量调整为列表的当前大小。 |

ArrayList添加元素

要将元素添加到ArrayList中,我们使用 add()方法。它按照插入顺序将元素添加到列表中。

  import java.util.*;
class Demo
{
  public static void main(String[] args)
  {   
    // Creating an ArrayList
    ArrayList< String> fruits = new ArrayList< String>();
    // Adding elements to ArrayList
    fruits.add("Mango");
    fruits.add("Apple");
    fruits.add("Berry");
    // Displaying ArrayList
    System.out.println(fruits);
  }
}

[芒果、苹果、浆果]

移除元素

为了从列表中移除元素,我们使用移除指定元素的移除方法。我们还可以传递索引值来移除其中的元素。

  import java.util.*;
class Demo
{
  public static void main(String[] args)
  {   
    // Creating an ArrayList
    ArrayList< String> fruits = new ArrayList< String>();
    // Adding elements to ArrayList
    fruits.add("Mango");
    fruits.add("Apple");
    fruits.add("Berry");
    fruits.add("Orange");
    // Displaying ArrayList
    System.out.println(fruits);
    // Removing Elements
    fruits.remove("Apple");
    System.out.println("After Deleting Elements: \n"+fruits);
    // Removing Second Element
    fruits.remove(1);
    System.out.println("After Deleting Elements: \n"+fruits);

  }
}

【芒果、苹果、浆果、橙子】删除元素后:【芒果、浆果、橙子】删除元素后:【芒果、橙子】

遍历ArrayList的元素

因为ArrayList是一个集合,所以我们可以使用循环来迭代它的元素。在这个例子中,我们正在遍历元素。见下面的例子。

  import java.util.*;
class Demo
{
  public static void main(String[] args)
  {   
    // Creating an ArrayList
    ArrayList< String> fruits = new ArrayList< String>();
    // Adding elements to ArrayList
    fruits.add("Mango");
    fruits.add("Apple");
    fruits.add("Berry");
    fruits.add("Orange");
    // Traversing ArrayList
    for(String element : fruits) {
      System.out.println(element);    
    }
  }
}

芒果苹果浆果橙

获取ArrayList的大小

有时我们想知道ArrayList包含的元素数量。在这种情况下,我们使用 size()然后返回ArrayList的大小,该大小等于列表中存在的元素数量。

  import java.util.*;
class Demo
{
  public static void main(String[] args)
  {   
    // Creating an ArrayList
    ArrayList< String> fruits = new ArrayList< String>();
    // Adding elements to ArrayList
    fruits.add("Mango");
    fruits.add("Apple");
    fruits.add("Berry");
    fruits.add("Orange");
    // Traversing ArrayList
    for(String element : fruits) {
      System.out.println(element);    
    }
    System.out.println("Total Elements: "+fruits.size());
  }
}

芒果苹果浆果橙子总元素:4

排序ArrayList元素

为了对ArrayList的元素进行排序,Java 提供了一个名为 Collections 的类,该类包含一个静态排序方法()。在这个例子中,我们使用排序方法对元素进行排序。

  import java.util.*;
class Demo
{
  public static void main(String[] args)
  {   
    // Creating an ArrayList
    ArrayList< String> fruits = new ArrayList< String>();
    // Adding elements to ArrayList
    fruits.add("Mango");
    fruits.add("Apple");
    fruits.add("Berry");
    fruits.add("Orange");
    // Sorting elements
    Collections.sort(fruits);
    // Traversing ArrayList
    for(String element : fruits) {
      System.out.println(element);    
    }
  }
}

苹果浆果芒果橙