集合(2)List接口使用
我有一个特点,不擅长倒下 不好意思,窜台了。
List的特点是:有序,有下标,元素可重复
按这个顺序来,添加add(); 删除remove(); 遍历增强for、for、迭代器; 判断contains(); isEmpty();
/** * List子接口的使用 * 特点:1.有序有下标 2.可重复 * @author 长空扯淡 */ public class Demo01 { public static void main(String[] args) { //先创建集合对象 List list = new ArrayList<>(); //1.添加元素 list.add("小米"); list.add("苹果"); list.add(0,"华为");//可以指定位置插入元素 System.out.println("元素个数:"+list.size());//输出--元素个数:3 System.out.println(list.toString());//输出--【华为,小米,苹果】 System.out.println("*******************************************"); //2.删除元素 //list.remove("苹果"); list.remove(0); System.out.println("删除之后:"+list.size());//输出--删除之后:2 System.out.println(list.toString());//输出--【小米,苹果】//3.遍历元素 //3.1for循环遍历,因为是有下标的,所以可以用for循环遍历 System.out.println("*****************for循环遍历*************"); for (int i=0; i<list.size();i++){ System.out.println(list.get(i));//get()方法是根据角标获取元素//输出--小米 } 苹果 //3.2增强for循环 System.out.println("*****************增强for循环遍历*************"); for(Object obj:list){ System.out.println(obj); } //3.3使用迭代器 System.out.println("*****************迭代器遍历*************"); Iterator it = list.iterator(); while(it.hasNext()){ System.out.println(it.next()); } //3.4使用列表迭代器,与Iterator不同的是,ListIterator可以向前向后遍历,添加、删除、修改元素 System.out.println("*****************列表迭代器从前往后遍历*************"); ListIterator lit = list.listIterator(); while(lit.hasNext()){ System.out.println(lit.nextIndex()+":"+lit.next());//输出--0:小米 } 1:苹果 System.out.println("*****************列表迭代器从后往前遍历*************"); while(lit.hasPrevious()){ System.out.println(lit.previousIndex()+":"+lit.previous());//输出--1:苹果 } 0:小米 System.out.println("*******************************************"); //4.判断 System.out.println(list.contains("小米"));//输出--true System.out.println(list.isEmpty());//输出--false
System.out.println(list.indexOf("苹果"));//获取位置 } }//输出--1
有一点要注意,在使用remove方法时
list.remove("苹果");
list.remove(0);
按元素删除与按下标删除都可以使用,当添加的元素是数字时
public class Demo02 {
public static void main(String[] args) {
List list = new ArrayList<>();
//添加数据(自动装箱) list.add(20); list.add(30); list.add(40); list.add(50); list.add(60); System.out.println(list.toString()); //list.remove(20);这样会报错,并不会删除20这个元素,因为是根据下标来删除的 list.remove(0); //list.remove((Object)20);强转成Objec才可以这样 System.out.println(list.toString()); System.out.println("====================="); //补充方法subList:返回子集合,含头不含尾 List subList = list.subList(1,3); System.out.println(subList.toString()); } }
浙公网安备 33010602011771号