美文网首页
集合Collection的体系结构

集合Collection的体系结构

作者: 牛倩贱 | 来源:发表于2019-05-29 21:33 被阅读0次

    集合的体系结构:

        由于不同的数据结构(数据的组织,存储方式),所以java为我们提供了不同的集合。但是不同的集合他们的功能却都是相似的,不断地向上提取,将共性抽取出来,这就是集合的体系结构形成的原因。

    java中的集合类型都是对java.util包中对Collection接口的继承。

    Collection中的常用功能(接口)

        Collection是接口,不能实例化,即不能直接new Collection,所以这时便用到了多态,创建对象的时候可以写成Collection c = new ArrayList();父类的引用指向子类对象。

    <1>.boolean add (E e):验证是否添加成功

    Collection c = new ArrayList();

    System.out.println(c.add("hello"));

    //true

    <2>.void clear():清空集合

    c.clear( );

    <3>.boolean contains(Object o ):判断集合中是否包含有指定元素

    <4>.boolean isEmpty( ):判断是否为空,不为空返回false,为空返回true

    <5>.boolean remove(Object o):删除元素

    <6>.int size( ):返回集合中元素个数

    <7>.Object[ ] toArray():将集合转换成一个Object类型的数组

    Object [ ] obj = c.toArray( );

    集合的遍历方式:

        a.toArray(),可以把集合转换成数组,然后遍历数组即可。

        b.iterator(),可以返回一个迭代器对象,我们可以通过对象来迭代集合

    Interator:可以用于遍历集合

        E next():返回下一个元素

    例:创建集合对象 Collection c = new ArrayList( ) ;

                            c.add("hello");

                            c.add("world");

    获取迭代器对象

        Interator it = c.iterator( ) ; 

        System.out.println(it.next());

      System.out.println(it.next());

      System.out.println(it.next());

    输出结果:hello,world,错误

    注意:使用next方法获取一个元素,如果没有元素可以获取,则出现一个异常,那么就要判断是否有元素可以获取,boolean hasNext()就很好的解决了这个问题。如下例:

    将代码改写为     while(it.hasNext()){

                            System.out.println(in.next);

    }

    案例:

        需求:判断集合中是否包含元素java,如果有则添加元素Android

    分析:第一个方法就是使用Collection中的contains方法来判断

    第二个方法就是使用迭代器遍历集合并与java进行比较,如果有则添加。

    迭代器是依赖与集合的,相当于集合的一个副本,当迭代器操作的时候,如果发现和集合不一样,则会抛出异常,解决方案:在使用迭代器进行遍历的时候,使用迭代器本身对象来修改。

    迭代器是没有添加方法的,去子类ListInterator中有添加方法,但是Collection获取不到ListInterator对象,但是List可以,所以

    //创建List集合对象

    List  c= new ArrayList( );

    c.add("hello");

    c.add("world");

    c.add("java");

    //获取ListInterator对象

    ListInterator lit = c.ListInterator( );

        while(lit.hasNext()){

            String s = (String)lit.next();

            if(s.equals("java")){

                lit.add("Android");

    }

    }

    System.out.println(c);

    相关文章

      网友评论

          本文标题:集合Collection的体系结构

          本文链接:https://www.haomeiwen.com/subject/nidlwqtx.html