Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误与异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 其他

Java API 与框架

Java 类引用

Java 有用资源

Java - List 接口



List 接口

List 接口扩展了 Collection 并声明了存储元素序列的集合的行为。

  • 可以使用基于零的索引通过其位置插入或访问元素。

  • 列表可以包含重复元素。

  • 除了Collection定义的方法外,List还定义了一些它自己的方法,这些方法在下面的表格中进行了总结。

  • 如果集合无法修改,则列表的几个方法将抛出 UnsupportedOperationException,当一个对象与另一个对象不兼容时,将生成 ClassCastException。

Java List 接口的声明

以下是 Java 中 List 接口的声明

public interface List<E> extends Collection<E>; 

创建 Java 列表

使用 List 接口创建 Java 列表。语法如下:

List<Obj> list = new ArrayList<Obj> (); 

List 接口示例

以下示例演示了 Java 中 List 接口的示例:

import java.util.*;

// The Main class
public class Main {
  public static void main(String[] args) {
    // Creating two lists using List interface
    List < Integer > list1 = new ArrayList < Integer > ();
    List < Integer > list2 = new ArrayList < Integer > ();

    // Adding elements to list 1
    list1.add(0, 10);
    list1.add(1, 20);

    // Printing list 1
    System.out.println("list1 : " + list1);

    // Adding elements to list 2
    list2.add(10);
    list2.add(20);
    list2.add(30);

    // Adding all elements of list 2 in list 1
    list1.addAll(1, list2);

    // Printing list 2
    System.out.println("list2 : " + list2);

    // Removes an element from list 1 (from index 1)
    list1.remove(1);

    // Printing list 1
    System.out.println("list1 after removing an element: " + list1);

    // get() method
    System.out.println("list1 using get() : " + list1.get(2));

    // Replacing element
    list1.set(0, 50);

    // Printing the list 1
    System.out.println("list1 : " + list1);
  }
}

输出

list1 : [10, 20]
list2 : [10, 20, 30]
list1 after removing an element: [10, 20, 30, 20]
list1 using get() : 30
list1 : [50, 20, 30, 20]

List 接口方法

以下是 Java 中 List 接口的方法:

序号 方法及描述
1

void add(int index, Object obj)

将 obj 插入到调用列表中 index 指定的索引处。插入点处或其后的任何现有元素都将向上移动。因此,不会覆盖任何元素。

2

boolean addAll(int index, Collection c)

c的所有元素插入到调用列表中 index 指定的索引处。插入点处或其后的任何现有元素都将向上移动。因此,不会覆盖任何元素。如果调用列表发生更改,则返回 true;否则返回 false。

3

Object get(int index)

返回调用集合中指定索引处存储的对象。

4

int indexOf(Object obj)

返回 obj 在调用列表中第一次出现的索引。如果 obj 不是列表的元素,则返回 -1。

5

int lastIndexOf(Object obj)

返回 obj 在调用列表中最后一次出现的索引。如果 obj 不是列表的元素,则返回 -1。

6

ListIterator listIterator( )

返回调用列表开头的迭代器。

7

ListIterator listIterator(int index)

返回调用列表的迭代器,该迭代器从指定的索引开始。

8

Object remove(int index)

从调用列表中移除 index 位置处的元素,并返回已删除的元素。生成的列表将被压缩。也就是说,后续元素的索引将递减 1。

9

Object set(int index, Object obj)

将 obj 分配给调用列表中 index 指定的位置。

10

List subList(int start, int end)

返回一个包含调用列表中从起始位置到结束位置(包含结束位置)元素的列表。返回列表中的元素也由调用对象引用。

列表接口的更多示例

示例:使用 ArrayList 的 Java 列表

以上接口已使用 ArrayList 实现。以下示例解释了上述集合方法的各种类实现中的一些方法。

import java.util.ArrayList;
import java.util.List;
public class CollectionsDemo {

   public static void main(String[] args) {
      List<String> a1 = new ArrayList<>();
      a1.add("Zara");
      a1.add("Mahnaz");
      a1.add("Ayan");      
      System.out.println(" ArrayList Elements");
      System.out.print("\t" + a1);
   }
}

输出

 ArrayList Elements
   [Zara, Mahnaz, Ayan]

示例:使用 LinkedList 的 Java 列表

以上接口已使用 LinkedList 实现。以下示例解释了上述集合方法的各种类实现中的一些方法。

import java.util.LinkedList;
import java.util.List;
public class CollectionsDemo {

   public static void main(String[] args) {
      List<String> a1 = new LinkedList<>();
      a1.add("Zara");
      a1.add("Mahnaz");
      a1.add("Ayan");      
      System.out.println(" LinkedList Elements");
      System.out.print("\t" + a1);
   }
}

输出

 LinkedList Elements
   [Zara, Mahnaz, Ayan]

示例:向 Java 列表添加元素

以上接口已使用 ArrayList 实现。以下是一个其他的示例,用于解释上述集合方法的各种类实现中的一些方法。

import java.util.ArrayList;
import java.util.List;
public class CollectionsDemo {

   public static void main(String[] args) {
      List<String> a1 = new ArrayList<>();
      a1.add("Zara");
      a1.add("Mahnaz");
      a1.add("Ayan");      
      System.out.println(" ArrayList Elements");
      System.out.print("\t" + a1);
      
      // remove second element
      a1.remove(1);
      
      System.out.println("\n ArrayList Elements");
      System.out.print("\t" + a1);
   }
}

输出

 ArrayList Elements
   [Zara, Mahnaz, Ayan]
 ArrayList Elements
   [Zara, Ayan]
广告