List接口
List接口的定义如下:
public interface List<E>extends Collection<E>
可以发现List接口时Collection接口的子类,List接口大量的扩充了Collection接口的操作,List接口里的内容是允许重复的。
List接口常用方法
一句话概括这些方法的功能:就是为了实现增删减查的功能。
有如下的方法:
void add(int index,E element)
//在列表的指定位置插入指定元素(可选操作)。将当前处于该位置的元素(如果有的话)和所有后续元素向右移动(在其索引中加 1)。
boolean addAll(int index, Collection<? extends E> c)
//将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
E get(int index) //返回列表中指定位置的元素。
int indexOf(Object o)
//返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1
E set(int index,E element)
//用指定元素替换列表中指定位置的元素(可选操作)。
boolean remove(Object o)
//从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。如果列表不包含元素,则不更改列表。
当然除了以上这些,还有其他的方法。
List接口的子类—ArrayList(常用)
ArrayList的定义如下:
public class ArrayList<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable
ArrayList是List接口的子类,那么如果想使用List接口,就必须通过对象的多态性来实例化List接口。下面通过实例了解ArrayList。
实例一:指定位置添加数据
import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
lists.add("Hello"); //加入内容
lists.add(0,"world");
System.out.println(lists);
}
}
运行结果如下:
[world, Hello]
实例二:指定位置添加内容
import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
List<String> lists1=new ArrayList<String>();
lists.add("Hello");
lists.add("world");
System.out.println(lists);
lists1.add("This");
lists1.add("is");
lists.addAll(0,lists1); //在指定位置添加一组内容
System.out.println(lists);
}
}
运行结果如下:
[Hello, world]
[This, is, Hello, world]
实例三:删除内容(可以使用两种方式)
import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
lists.add("输出:");
lists.add("Hello");
lists.add("world");
System.out.println(lists);
lists.remove(0); //通过编号删除内容
System.out.println(lists);
lists.remove("Hello"); //通过内容来删除内容
System.out.println(lists);
}
}
运行结果如下:
[输出:, Hello, world]
[Hello, world]
[world]
通过以上程序我们发现内容前后都有'[]',还存在',',那么如何去除他们呢?
实例四:依次输出内容
import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
lists.add("输出:");
lists.add("Hello");
lists.add("world");
for(int i=0;i<lists.size();i++){ //size()方法取得集合中内容的个数
System.out.println(lists.get(i)); //get()方法取得其中的内容
}
}
}
运行结果如下:
输出:
Hello
world
此输出方式(根据所有取出内容)是List接口独有的,其他接口时没有的。这也是为什么List接口里的内容可以重复的原因。
实例四
import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
System.out.println("判断集合是否为空:"+lists.isEmpty());
lists.add("输出:");
lists.add("Hello");
lists.add("world");
System.out.println("Hello所在位置是:"+lists.indexOf("Hello"));
System.out.println("是否存在world:"+lists.contains("world"));
}
}
输出结果如下:
判断集合是否为空:true
Hello所在位置是:1
是否存在world:true
总结:
List中允许重复元素