集合 P2 List接口和常用方法
List接口和常用方法
一、List接口基本介绍
List接口是 Collection 接口的子接口
-
List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复
-
List集合类中的每一个元素都有其对应的顺序索引,即支持索引。
-
List容器中都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。
-
JDK API中List接口的实现类有
常用的有:ArrayList、LinkedList 和 Vector。
案例演示:
import java.util.ArrayList;
import java.util.List;
public class List_ {
@SuppressWarnings({"all"})
public static void main(String[] args) {
// 1. List集合类中元素有序(即添加顺序和取出顺序一致),且可重复
List list = new ArrayList();
list.add("jack");
list.add("tom");
list.add("mary");
list.add("hsp");
list.add("tom");
System.out.println("list = " + list);
// 2. List集合中的每个元素都有其对应的顺序索引,即支持索引
// 索引是从0开始的
System.out.println(list.get(3));
}
}
/*
运行结果:
list = [jack, tom, mary, hsp, tom]
hsp
*/
二、List接口的常用方法
List 集合里添加了一些根据索引来操作集合元素的方法。
- void add(int index, Object ele):在index 位置插入ele元素;
- boolean addAll(int index, Collection eles):从index位置开始将eles中所有元素添加进来;
- Object get(int index):获取指定index、位置的元素;
- int indexOf(Object obj):返回obj在当前集合中首次出现的位置;
- int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置;
- Object remove(int index):移除指定index位置的元素,并返回此元素;
- Object set(int index, Object ele):设置指定index位置的元素为ele,相当于替换;
- list subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合;
案例演示:
import java.util.ArrayList;
import java.util.List;
/**
* @author
* @version 1.0
*/
public class ListMethod {
@SuppressWarnings({"all"})
public static void main(String[] args) {
List list = new ArrayList();
list.add("张三丰");
list.add("贾宝玉");
//1. void add(int index, Object ele):在index 位置插入ele元素
// 在index = 1的位置插入一个对象
list.add(1, "韩顺平");
System.out.println("list = " + list);
//2. boolean addAll(int index, Collection eles):从index位置开始将eles中所有元素添加进来
List list2 = new ArrayList();
list2.add("jack");
list2.add("tom");
list.addAll(1, list2);
System.out.println("list = " + list);
//3. Object get(int index):获取指定index、位置的元素
//4. int indexOf(Object obj):返回obj在当前集合中首次出现的位置
System.out.println(list.indexOf("tom"));//2
//5. int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
list.add("韩顺平");
System.out.println("list = " + list);
System.out.println(list.lastIndexOf("韩顺平"));
//6. Object remove(int index):移除指定index位置的元素,并返回此元素
list.remove(0);
System.out.println("list = " + list);
//7. Object set(int index, Object ele):设置指定index位置的元素为ele,相当于替换
list.set(1, "玛丽");
System.out.println("list = " +list);
//8. list subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
//注意返回的子集合 formIndex <= subList < toIndex
List returnList = list.subList(0,2);
System.out.println("returnList = " + returnList);
}
}
三、List的三种常用遍历方式
- 方式一:使用iterator
- 方式二:增强for
- 方式三:使用普通for
案例演示:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListFor {
@SuppressWarnings({"all"})
public static void main(String[] args) {
//List 接口的实现子类 Vector LinkedList ArrayList
List list = new ArrayList();
list.add("jack");
list.add("tom");
list.add("鱼香肉丝");
list.add("北京烤鸭");
//遍历
//1. 迭代器
Iterator iterator = list.iterator();
while(iterator.hasNext()){
Object obj = iterator.next();
System.out.println(obj);
}
//2. 增强for
for(Object obj2: list){
System.out.println(obj2);
}
//3. 普通for
for(int i = 0; i < list.size(); i++){
Object obj3 = list.get(i);
System.out.println(obj3);
}
}
}