当前位置 博文首页 > AiY..的博客:List()接口

    AiY..的博客:List()接口

    作者:[db:作者] 时间:2021-07-14 21:32

    List接口: 有序、有下标、元素可以重复
    方法:
    1、单个元素的添加、删除

    void add(int index,Object obj) //指定index位置插入对象o
    boolean add(Object obj) //列表的尾部添加指定的对象
    object remove(int index) //移除列表中指定元素的对象
    boolean remove(Object obj) //移除列表中第一次出现的指定对象
    

    2、组元素的添加、删除

    boolean addAll(Collection col) //将列表col所有元素添加到列表的结尾
    boolean addAll(int index,Collection col) //将集合col添加到列表index的位置
    boolean removeAll(Collection col) //移除列表col包含的所有元素
    boolean retainAll(Collection col) //保留col中的所有元素
    boolean clear()   //清空列表
    

    3、元素查询

    boolean contains(Object obj) //判断列表是否包含obj对象
    Object get(int index)   //获取指定索引处的元素
    int index(Object obj) //返回指定对象在列表中第一次出现的索引
    int size()    //获取列表中元素的个数
    

    4、组查询

    boolean containsAll(Collection col)   //判断col中所有的元素是否包含在列表中
    Iterator iterator() //获取列表的一个迭代器,遍历列表
    ListIterator listIterator()  //获取列表的一个列表迭代器
    ListIterator listIterator(int index) //获取从指定位置开始的列表迭代器
    

    egg:以[ 华为,苹果,三星,大哥大]列表为例

    package Collection接口;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.ListIterator;
    /**
     * List的特点:1、有序 有下表
     *            2、元素可以重复
     * @author AiY
     */
    public class ListDemo {
        public static void main(String[] args) {
            //创建一个集合
            List list=new ArrayList();
            list.add("华为");
            list.add("苹果");
            list.add("三星");
            list.add("大哥大");
            System.out.println("元素的个数:"+list.size());
            System.out.println(list.toString());
            //删除元素
            //list.remove("大哥大");
            //list.remove(1);
            //System.out.println(list);
            //遍历
            System.out.println("---使用for遍历");
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i));
            }
            System.out.println("---使用增强for");
            for(Object object:list){
                System.out.println(object);
            }
            System.out.println("---使用迭代器");
            Iterator iterator=list.iterator();
            while(iterator.hasNext()){
                System.out.println(iterator.next());
            }
            System.out.println("---使用列表迭代器遍历");
            //列表迭代器可以增加元素、删除元素、获取元素或者元素脚标
            //也可以向前向后遍历
            ListIterator listIterator=list.listIterator();
            System.out.println("---从前往后遍历");
            while(listIterator.hasNext()){
                System.out.println(listIterator.nextIndex()+":"+listIterator.next());
            }
            System.out.println("---从后往前遍历");
            while(listIterator.hasPrevious()){
                System.out.println(listIterator.previousIndex()+":"+listIterator.previous());
            }
            System.out.println(list.contains("大哥大"));
            //索引下标为2的元素
            System.out.println(list.get(2));
            //清空
            list.clear();
            System.out.println(list.size());
        }
    }
    
    
    元素的个数:4
    [华为, 苹果, 三星, 大哥大]
    ---使用for遍历
    华为
    苹果
    三星
    大哥大
    ---使用增强for
    华为
    苹果
    三星
    大哥大
    ---使用迭代器
    华为
    苹果
    三星
    大哥大
    ---使用列表迭代器遍历
    ---从前往后遍历
    0:华为
    1:苹果
    2:三星
    3:大哥大
    ---从后往前遍历
    3:大哥大
    2:三星
    1:苹果
    0:华为
    true
    三星
    0
    

    添加(1):sbulist 的用法是截取列表某一段,其中截取的包含左边,不包含右边

    package Collection接口;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class ExampleDemo {
        public static void main(String[] args) {
            List list=new ArrayList();
            list.add("关羽");
            list.add("张飞");
            list.add("赵云");
            list.add("黄盖");
            list.add("马超");
            System.out.println(list);
            List sbulist=list.subList(1,3);
            System.out.println(sbulist);
        }
    }
    
    [关羽, 张飞, 赵云, 黄盖, 马超]
    [张飞, 赵云]
    

    添加(2): 如果针对的列表是数字,且要删除某一个数字的话,使用list.remove(i),此时移除的是下标为i的数字,而非数字本身,这个时候就需要用另一方法1、使用Object类;2、使用Integer

    package Collection接口;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class ListDemo1 {
        public static void main(String[] args) {
            //创建
            List list=new ArrayList();
            for(int i=10;i<=60;i=i+10){
                list.add(i);
            }
            System.out.println("元素个数"+list.size()+":"+list);
            //list.remove(10);  //删除的只是下标10的元素,而不是10
            //删除指定下标的两种方法1、使用object2、使用Integer
            list.remove((Object)10);
            list.remove(new Integer(20));
            System.out.println("元素个数"+list.size()+":"+list);
        }
    }
    
    元素个数6:[10, 20, 30, 40, 50, 60]
    元素个数4:[30, 40, 50, 60]
    
    cs