个性化阅读
专注于IT技术分析

Java列表接口

列表接口是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() 它用于以正确的顺序返回包含此列表中所有元素的数组。
T[] toArray(T[] a) 它用于以正确的顺序返回包含此列表中所有元素的数组。
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 operator) 它用于将列表中的所有元素替换为指定的元素。
void keepAll(Collection <?> c) 它用于保留列表中指定集合中存在的所有元素。
E set(int index, E element) 它用于替换列表中位于指定位置的指定元素。
无效排序(Comparator <?super E> c) 用于根据指定的比较器对列表中的元素进行排序。
Spliterator 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
赞(0)
未经允许不得转载:srcmini » Java列表接口

评论 抢沙发

评论前必须登录!