列表接口是Collection的子接口。它包含用于插入和删除元素的基于索引的方法。它是ListIterator接口的工厂。
列表接口声明
public interface List<E> extends Collection<E>
Java List接口的方法
方法 | 描述 | |
---|---|---|
void add(int index, E element) | 用于将指定的元素插入列表中的指定位置。 | |
boolean add(E e) | 它用于将指定的元素追加到列表的末尾。 | |
布尔addAll(Collection <?扩展E> c) | 它用于将指定集合中的所有元素附加到列表的末尾。 | |
布尔addAll(int索引, Collection <?扩展E> c) | 从列表的指定位置开始, 它用于附加指定集合中的所有元素。 | |
void clear() | 它用于从此列表中删除所有元素。 | |
boolean equals(Object o) | 它用于将指定的对象与列表的元素进行比较。 | |
int hashcode() | 它用于返回列表的哈希码值。 | |
E get(int index) | 它用于从列表的特定位置获取元素。 | |
boolean isEmpty() | 如果列表为空, 则返回true, 否则返回false。 | |
int lastIndexOf(Object o) | 它用于返回指定元素最后一次出现在此列表中的索引;如果列表不包含此元素, 则返回-1。 | |
Object[] toArray() | 它用于以正确的顺序返回包含此列表中所有元素的数组。 | |
|
它用于以正确的顺序返回包含此列表中所有元素的数组。 | |
boolean contains(Object o) | 如果列表包含指定的元素, 则返回true | |
布尔containsAll(Collection <?> c) | 如果列表包含所有指定的元素, 则返回true | |
int indexOf(Object o) | 它用于返回指定元素首次出现在此列表中的索引, 如果列表不包含此元素, 则返回-1。 | |
E remove(int index) | 它用于删除列表中指定位置上存在的元素。 | |
boolean remove(Object o) | 它用于删除指定元素的第一次出现。 | |
布尔值removeAll(Collection <?> c) | 它用于从列表中删除所有元素。 | |
void replaceAll(UnaryOperator
|
它用于将列表中的所有元素替换为指定的元素。 | |
void keepAll(Collection <?> c) | 它用于保留列表中指定集合中存在的所有元素。 | |
E set(int index, E element) | 它用于替换列表中位于指定位置的指定元素。 | |
无效排序(Comparator <?super E> c) | 用于根据指定的比较器对列表中的元素进行排序。 | |
Spliterator
|
它用于在列表中的元素上创建分隔符。 | |
List <E> subList(int fromIndex, int toIndex) | 它用于获取位于给定范围内的所有元素。 | |
int size() | 它用于返回列表中存在的元素数。 |
Java列表示例
import java.util.*;
public class ListExample{
public static void main(String args[]){
List<String> al=new ArrayList<String>();
al.add("Amit");
al.add("Vijay");
al.add("Kumar");
al.add(1, "Sachin");
System.out.println("An element at 2nd position: "+al.get(2));
for(String s:al){
System.out.println(s);
}
}
}
输出:
An element at 2nd position: Vijay
Amit
Sachin
Vijay
Kumar
Java ListIterator接口
ListIterator接口用于在后退和前进方向上遍历元素。
ListIterator接口声明
public interface ListIterator<E> extends Iterator<E>
Java ListIterator接口的方法:
方法 | 描述 |
---|---|
void add(E e) | 此方法将指定的元素插入列表。 |
boolean hasNext() | 如果列表迭代器在向前遍历列表时有更多元素, 则此方法返回true。 |
E next() | 此方法返回列表中的下一个元素并前进光标位置。 |
int nextIndex() | This method returns the index of the element that would be returned by a subsequent call to next() |
boolean hasPrevious() | 如果此列表迭代器在反向遍历列表时具有更多元素, 则此方法返回true。 |
E previous() | 此方法返回列表中的前一个元素, 并将光标位置向后移动。 |
E previousIndex() | 此方法返回元素的索引, 该元素的索引将由后续对previous()的调用返回。 |
void remove() | 此方法从next()或previous()方法返回的列表中删除最后一个元素 |
void set(E e) | 此方法用指定的元素替换next()或previous()方法返回的最后一个元素。 |
ListIterator接口示例
import java.util.*;
public class ListIteratorExample1{
public static void main(String args[]){
List<String> al=new ArrayList<String>();
al.add("Amit");
al.add("Vijay");
al.add("Kumar");
al.add(1, "Sachin");
ListIterator<String> itr=al.listIterator();
System.out.println("Traversing elements in forward direction");
while(itr.hasNext()){
System.out.println("index:"+itr.nextIndex()+" value:"+itr.next());
}
System.out.println("Traversing elements in backward direction");
while(itr.hasPrevious()){
System.out.println("index:"+itr.previousIndex()+" value:"+itr.previous());
}
}
}
输出:
Traversing elements in forward direction
index:0 value:Amit
index:1 value:Sachin
index:2 value:Vijay
index:3 value:Kumar
Traversing elements in backward direction
index:3 value:Kumar
index:2 value:Vijay
index:1 value:Sachin
index:0 value:Amit
ListIterator接口示例:书籍
import java.util.*;
class Book {
int id;
String name, author, publisher;
int quantity;
public Book(int id, String name, String author, String publisher, int quantity) {
this.id = id;
this.name = name;
this.author = author;
this.publisher = publisher;
this.quantity = quantity;
}
}
public class ListIteratorExample2 {
public static void main(String[] args) {
//Creating list of Books
List<Book> list=new ArrayList<Book>();
//Creating Books
Book b1=new Book(101, "Let us C", "Yashwant Kanetkar", "BPB", 8);
Book b2=new Book(102, "Data Communications & Networking", "Forouzan", "Mc Graw Hill", 4);
Book b3=new Book(103, "Operating System", "Galvin", "Wiley", 6);
//Adding Books to list
list.add(b1);
list.add(b2);
list.add(b3);
//Traversing list
for(Book b:list){
System.out.println(b.id+" "+b.name+" "+b.author+" "+b.publisher+" "+b.quantity);
}
}
}
输出:
101 Let us C Yashwant Kanetkar BPB 8
102 Data Communications & Networking Forouzan Mc Graw Hill 4
103 Operating System Galvin Wiley 6
评论前必须登录!
注册