Java 简明教程
Java - List Interface
List Interface
List 接口扩展 Collection 并声明存储元素序列的集合的行为。
-
可以通过使用基于零的索引在其在列表中的位置来插入或访问这些元素。
-
列表可能包含重复元素。
-
除了 Collection 定义的方法外,List 还定义了一些自己的方法,这些方法在下一表格中进行了总结。
-
列表方法中有几个会抛出 UnsupportedOperationException,如果集合不可修改,且一个对象与另一个对象不兼容时会生成 ClassCastException。
Declaration of Java List Interface
以下是 Java 中 List 接口的声明:
public interface List<E> extends Collection<E>;
Example of List Interface
以下示例演示了 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);
}
}
Output
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 Interface Methods
以下是 Java 中 List 接口的方法 -
Sr.No. |
Method & Description |
1 |
void add(int index, Object obj) 在传入 index 中的 index 处将 obj 插入调用列表。插入点或其之后的任何现有元素都会向上移动。因此,不会覆盖任何元素。 |
2 |
boolean addAll(int index, Collection c) 将 c 的所有元素插入调用列表中传入 index 的 index 处。插入点或其之后的任何现有元素都会向上移动。因此,不会覆盖任何元素。如果调用列表发生更改,则返回 true,否则返回 false。 |
3 |
Object get(int index) 返回存储在调用集合中指定 index 处的对象。 |
4 |
int indexOf(Object obj) 返回 obj 在调用列表中第一个实例的 index。如果 obj 不是列表中的元素,则返回 -1。 |
5 |
int lastIndexOf(Object obj) 返回 obj 在调用列表中最后一个实例的 index。如果 obj 不是列表中的元素,则返回 -1。 |
6 |
ListIterator listIterator( ) 返回调用列表开始处的迭代器。 |
7 |
ListIterator listIterator(int index) 返回从指定 index 开始的调用列表的迭代器。 |
8 |
Object remove(int index) 从调用列表中删除位置 index 处的元素,并返回已删除的元素。结果列表会进行压缩。也就是说,后续元素的 index 会递减一。 |
9 |
Object set(int index, Object obj) 将 obj 分配给调用列表中 index 指定的位置。 |
10 |
List subList(int start, int end) 返回一个列表,其中包含调用列表中 start 到 end-1 的元素。已返回列表中的元素也由调用对象引用。 |
Example: Java List using ArrayList
上述接口已使用 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]
Example: Java List using LinkedList
上述接口已使用 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]
Example: Adding Element to Java List
上述接口已使用 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]