Java中的List接口
导读
通过本文的阅读,可以了解如下的信息:
- List接口的一些特点
- List常见的三种实现类:ArrayList、LinkedList、Vector
- List集合的一些常见的操作(增、删、改、查等)
List接口的定义
public interface List<E> extends Collection<E> {
...
}
List接口继承了Collection接口以定义一个允许重复项的有序集合,该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。
List接口是一个有序集合,在集合中每个元素都有其对应的顺序索引,默认按元素的添加顺序设置元素的索引,例如第一次添加的元素索引为0,第二次添加的元素索引为1,依此类推。
List接口的特点:
- 内部元素是有序的,有序的集合
- 内部的元素可以重复
List接口有3个常用的实现类,分别是ArrayList、LinkedList、Vector
如何创建ArrayList、LinkedList、Vector
ArrayList<T> name=new ArrayList<T>();
LinkedList<T> name=new LinkedList<T>();
Vector<T> name1=new Vector<T>();
如何向ArrayList、LinkedList、Vector中添加元素
实例
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Vector;
public class Demo{
public static void main(String[] args){
ArrayList<String> arrName=new ArrayList<String>();
arrName.add("a1");
arrName.add("a2");
for(String s:arrName){
System.out.print(s+" ");
}
System.out.println();
LinkedList<String> linkName=new LinkedList<String>();
linkName.add("l1");
linkName.add("l2");
for(String s:linkName){
System.out.print(s+" ");
}
System.out.println();
Vector<String> vectorName=new Vector<String>();
vectorName.add("v1");
vectorName.add("v2");
for(String s:vectorName){
System.out.print(s+" ");
}
System.out.println();
}
}
运行结果
a1 a2
l1 l2
v1 v2
如何判定元素是否在ArrayList、LinkedList、Vector中
实例
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Vector;
public class Demo{
public static void main(String[] args){
//ArrayList................
ArrayList<String> arrName=new ArrayList<String>();
arrName.add("a1");
arrName.add("a2");
System.out.println(arrName.contains("a1"));
//LinkedList.....................
LinkedList<String> linkName=new LinkedList<String>();
linkName.add("l1");
linkName.add("l2");
System.out.println(linkName.contains("l3"));
//Vector.....................
Vector<String> vectorName=new Vector<String>();
vectorName.add("v1");
vectorName.add("v2");
System.out.println(vectorName.contains("v2"));
}
}
运行结果
true
false
true
如何删除ArrayList、LinkedList、Vector中的值
因为List集合中的数据是有序的,所以可以通过索引值进行删除
实例
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Vector;
public class Demo{
public static void main(String[] args){
//ArrayList................
ArrayList<String> arrName=new ArrayList<String>();
arrName.add("a1");
arrName.add("a2");
arrName.remove(1);
for(String s:arrName){
System.out.print(s+" ");
}
System.out.println();
//LinkedList.....................
LinkedList<String> linkName=new LinkedList<String>();
linkName.add("l1");
linkName.add("l2");
linkName.remove(0);
for(String s:linkName){
System.out.print(s+" ");
}
System.out.println();
//Vector.....................
Vector<String> vectorName=new Vector<String>();
vectorName.add("v1");
vectorName.add("v2");
vectorName.remove(1);
for(String s:vectorName){
System.out.print(s+" ");
}
System.out.println();
}
}
运行结果
a1
l2
v1
如何更改ArrayList、LinkedList、Vector中的值
实例
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Vector;
public class Demo{
public static void main(String[] args){
//ArrayList................
ArrayList<String> arrName=new ArrayList<String>();
arrName.add("a1");
arrName.add("a2");
arrName.set(1,"a22");
for(String s:arrName){
System.out.print(s+" ");
}
System.out.println();
//LinkedList.....................
LinkedList<String> linkName=new LinkedList<String>();
linkName.add("l1");
linkName.add("l2");
linkName.set(0,"l11");
for(String s:linkName){
System.out.print(s+" ");
}
System.out.println();
//Vector.....................
Vector<String> vectorName=new Vector<String>();
vectorName.add("v1");
vectorName.add("v2");
vectorName.set(1,"v22");
for(String s:vectorName){
System.out.print(s+" ");
}
System.out.println();
}
}
运行结果
a1 a22
l11 l2
v1 v22
如何迭代ArrayList、LinkedList、Vector
实例
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Vector;
import java.util.Iterator;
public class Demo{
public static void main(String[] args){
//ArrayList................
ArrayList<String> arrName=new ArrayList<String>();
arrName.add("a1");
arrName.add("a2");
System.out.println("for循环迭代ArrayList");
for(String s:arrName){
System.out.print(s+" ");
}
System.out.println("\nIterator迭代器迭代ArrayList");
Iterator ite=arrName.iterator();
while(ite.hasNext()){
System.out.print(ite.next()+" ");
}
System.out.println();
//LinkedList.....................
LinkedList<String> linkName=new LinkedList<String>();
linkName.add("l1");
linkName.add("l2");
System.out.println("for循环迭代LinkedList");
for(String s:linkName){
System.out.print(s+" ");
}
System.out.println("\nIterator迭代器迭代LinkedList");
Iterator ite2=linkName.iterator();
while(ite2.hasNext()){
System.out.print(ite2.next()+" ");
}
System.out.println();
//Vector.....................
Vector<String> vectorName=new Vector<String>();
vectorName.add("v1");
vectorName.add("v2");
System.out.println("for循环迭代Vector");
for(String s:vectorName){
System.out.print(s+" ");
}
System.out.println("\nIterator迭代器迭代Vector");
Iterator ite3=vectorName.iterator();
while(ite3.hasNext()){
System.out.print(ite3.next()+" ");
}
System.out.println();
}
}
运行结果
for循环迭代ArrayList
a1 a2
Iterator迭代器迭代ArrayList
a1 a2
for循环迭代LinkedList
l1 l2
Iterator迭代器迭代LinkedList
l1 l2
for循环迭代Vector
v1 v2
Iterator迭代器迭代Vector
v1 v2