集合(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());
    }
}

 

 
posted @ 2022-03-26 11:38  长空扯淡  阅读(45)  评论(0)    收藏  举报