package list;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
/**
* List常用方法总结
*/
public class ListMethod {
public static void main(String[] args) {
List list = new ArrayList();
//1.1、增 add() 添加单个元素,默认是添加到list末尾,也可以在第一个参数指定要插入的位置(下标)
list.add("Tom"); //添加到末尾
list.add("Bob");
list.add(1, "王颖"); //插入在下标为1处
System.out.println("1.1 " + list);
//1.2、addAll() 一次添加多个元素 参数为Collection类型,和前者一样可以指定插入位置或者默认
List temp = new ArrayList();
temp.add("杨过");
temp.add("小龙女");
list.addAll(temp); //默认添加到末尾
System.out.println("1.2 " + list);
list.addAll(0,temp); //指定插入位置
System.out.println("1.2 " + list);
//2、删 remove() 删除指定下标位置元素,并返回此元素, 类似的还有removeALl
Object obj = list.remove(0);
System.out.println("2、删除的下标为0的元素为:" + obj);
System.out.println("2、删除后list内容为:" + list);
//3、改 set() 设置该下标位置元素为所给元素,相当于替换
list.set(3, "Evan");
System.out.println("3、将下标为3处设为Evan:" + list);
//4、查 get() 获取该下标位置元素
System.out.println("4、list中下标为3的元素是: " + list.get(3));
//5、indexOf() 返回该对象在list中第一次出现的索引,lastIndexOf是最后一次出现的索引
System.out.println("5、list中小龙女第一次出现的索引为:" + list.indexOf("小龙女"));
System.out.println("5、list中小龙女最后一次出现的索引为:" + list.lastIndexOf("小龙女"));
//6、size() 获取list大小
System.out.println("6、list的大小为:" + list.size());
//7、subList() 截取子列表 两个参数 [a,b) 区间左闭右开
List list1 = list.subList(2, 4); //实际截取到了2、3两个元素
System.out.println("7、截取到的list为: " + list1);
//8、sort list没有默认排序规则,需要自己传入一个实现了Comparator接口的子类,自定义比较规则
list.sort(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
String s1 = (String) o1; //这里没用泛型,如果用泛型就不需要自己转型了
String s2 = (String) o2;
return s2.length()-s1.length(); //按长度从大到小排
}
});
System.out.println("8、排序以后的list为" + list);
}
}