zoukankan      html  css  js  c++  java
  • 5、集合--Connection和Iterator接口

    对于Colleaction和Iterator的接口源码地址:点击跳转

    Collection

    Collection接口用于表示任何对象或元素组

    相关方法:

    1、单元素添加、删除操作

    add(Object o):将对象添加给集合

    remove(Object o):如果集合中有与o相匹配的对象,则删除对象

    2、查询操作

    size():返回当前集合中元素中的数量

    isEmpty():判断集合中是否有任何元素

    contains(Object o):查找集合中是否含有对象o

    iterator():返回一个迭代对象,用来访问集合中的各个元素

    3、组操作

    containsAll(Colleaction c):查找集合中元素是否含有集合c中的所有元素

    addAll(Collection c):将集合c中的所有元素添加给该集合

    clear():删除集合中的所有元素

    removeAll(Collection c):从集合中删除集合c中的所有元素

    retainAll(Conllection c):从集合中删除c中不包含的元素

    4、将collection转为object数组

    toArray():返回一个内含所有元素的array

    toArray(Object [] a):返回一个内含集合所有元素的array

            运行期间返回的array和参数a的类型相同,需要转换为正确的类型

    注意:Collection中没有get()方法,如果要遍历则需要使用Iterator

    关于AbstractCollection抽象类

    源码地址:https://www.cnblogs.com/Mrchengs/p/10844184.html

    提供了具体“集合框架”类的基本功能

    虽然可以自行实现Collection接口中的方法,但是除了方法iterator()方法和size()可以恰当的子类中实现

    其他方法都由AbstractCollection类来提供实现

    Iterator接口

    接口Collection中的iterator()方法能够返回一个Iterator

    Iterator接口方法能够以迭代方式逐个访问各个元素

    并且安全地从Collection中出去适当的元素

    相关方法:

    hasNext():判断是否存在另一个可访问的元素

    next():返回要访问的下一个元素,如果到达集合结尾,则抛出NoSucnElementException异常

    remove():删除上次访问的对象。

    相关代码:

     public static void main(String[] args) {
            //创建集合
            Collection collection = new ArrayList();
    
            //打印长度
            System.out.println("打印长度:" + collection.size());
    
            //单个元素进行添加
            collection.add("a");
            collection.add("b");
            collection.add(1);
            collection.add(2);
            System.out.println("打印长度:" + collection.size());
    
            //使用for循环进行遍历集合
            for(Object obj : collection){
                System.out.println("for循环遍历collection:" + obj);
            }
    
            //迭代器
            Iterator it = collection.iterator();
            while(it.hasNext()){
                Object obj = it.next();
                System.out.println("Iterator:" + obj);
            }
    
            //创建集合
            Collection c1 = new ArrayList();
            c1.add("a");
            c1.add(3);
            c1.add(4);
    
            //将集合c1中的元素都添加到collection
            collection.addAll(c1);
            System.out.println("将集合c1添加到collection后的collection:"+collection);
    
            //删除指定的元素
            c1.remove("a");
            System.out.println("删除a元素之后的集合c1" + c1);
    
            //清空元素
            collection.clear();
            System.out.println("清空集合collection:" + collection);
    
            //创建集合
            Collection c2 = new ArrayList();
            c2.add("a");
            c2.add(3);
            c2.add(4);
    
            //创建集合
            Collection c3 = new ArrayList();
            c3.add("a");
            c3.add(5);
            c3.add(6);
    
            //添加c3中的所有元素
            c2.addAll(c3);
            System.out.println("c2中添加c3元素:" + c2);
    
            //移除c2中中所有的c3元素
            c2.removeAll(c3);
            System.out.println("c2中删除c3已有的元素:" + c2);
    
            //删除集合c3中没有c2元素的元素
            c3.retainAll(c2);
            System.out.println(c3);
        }

    注意:所有的Collection集合类都重写了toString()方法,此方法可以一次性输出集合中的所有元素

  • 相关阅读:
    The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.
    线程安全思考
    微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异
    从构建分布式秒杀系统聊聊分布式锁
    基于Redis实现延时队列服务
    Redis分布式锁的正确实现方式
    探究 Redis 4 的 stream 类型
    JAVA 异常分类与理解
    缓存穿透,缓存击穿,缓存雪崩解决方案分析
    分布式之数据库和缓存双写一致性方案解析(一)
  • 原文地址:https://www.cnblogs.com/Mrchengs/p/10844725.html
Copyright © 2011-2022 走看看