zoukankan      html  css  js  c++  java
  • 第7篇 Java中的集合(List)

    集合

    集合框架围绕一组标准接口而设计,我们可以直接使用这些接口的标准实现,也可以通过这些接口实现自己的集合。

    以下是百度的一张集合框架结构图:

    从上图我们可以看出,集合主要分为两个不同的容器,一个是Collection,另一个是Map。

    Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。

    Collection

    最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。

    Collection 接口存储一组不唯一,无序的对象。

    Collection 的常用方法:

    • boolean add(E o)

      添加元素到此 collection 中,如果 collection 由于此方法的调用而发生改变,则返回true。    

    • boolean addAll(Collection<? extends E> c)

      将指定 collection 中的所有元素都添加到此 collection 中。

    • void clear()

      移除此 collection 中的所有元素。

    • boolean contains(Object o)

      当且仅当此 collection 至少包含一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时才返回 true

    • boolean containsAll(Collection<?> c)

      如果此 collection 包含指定 collection 中的所有元素,则返回 true

    • boolean isEmpty()

      如果此 collection 不包含元素,则返回 true

    • boolean remove(Object o)

      如果此 collection 包含一个或多个满足 (o==null ? e==null : o.equals(e)) 的元素 e,则移除这样的元素。如果 collection 由于此方法的调用而发生改变),则返回 true。 

    • boolean remove(Collection<?> c)

      移除此 collection 中那些也包含在指定 collection 中的所有元素(移除交集)。此调用返回后,collection 中将不包含任何与指定 collection 相同的元素。

    • boolean retainAll(Collection<?> c)

      仅保留此 collection 中那些也包含在指定 collection 的元素(保留交集)。换句话说,移除此 collection 中未包含在指定 collection 中的所有元素。

    • int size()

      返回此 collection 中的元素数。

    • <T> T[] toArray(T[] a)

      返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。如果指定的数组能容纳该 collection,则返回包含此 collection 元素的数组。否则,将根据指定数组的运行时类型和此 collection 的大小分配一个新数组。

    • Iterator <E> iterator()

      返回在此 collection 的元素上进行迭代的迭代器。关于元素返回的顺序没有任何保证(除非此 collection 是某个能提供保证顺序的类实例)。

    实例示范:

    //接口不能被实例化,只能实例化其实现类
    Collection huLuWa = new ArrayList();
    //给collection添加元素
    huLuWa.add("大娃");
    huLuWa.add("二娃");
    huLuWa.add("三娃");
    //size方法获取个数
    System.out.println(huLuWa.size()+"个葫芦娃:"+huLuWa);
    
    Collection huLu = new ArrayList();
    //addAll 方法添加huLuWa中所有元素
    huLu.addAll(huLuWa);
    System.out.println("葫芦里有:"+huLu);
    //remove 方法移除元素“大娃”
    huLu.remove("大娃");
    System.out.println("葫芦里有:"+huLu);        
    huLu.add("蛇精");
    System.out.println("葫芦里有:"+huLu);
    //removeAll 方法移除huLu和huLuWa的交集
    huLu.removeAll(huLuWa);
    System.out.println("葫芦里有:"+huLu);
    huLu.add("三娃");
    System.out.println("葫芦里有:"+huLu);
    //retainAll 方法保留交集
    huLu.retainAll(huLuWa);
    System.out.println("葫芦里有:"+huLu);
    //使用迭代器遍历所有元素
    for(Iterator wa=huLuWa.iterator();wa.hasNext();) {
        System.out.println(wa.next());
    }

    打印结果为:

    3个葫芦娃:[大娃, 二娃, 三娃]
    葫芦里有:[大娃, 二娃, 三娃]
    葫芦里有:[二娃, 三娃]
    葫芦里有:[二娃, 三娃, 蛇精]
    葫芦里有:[蛇精]
    葫芦里有:[蛇精, 三娃]
    葫芦里有:[三娃]
    大娃
    二娃
    三娃
  • 相关阅读:
    job还是job
    oracle输出多行多列数据
    数组做为参数传入Oracle存储过程操作数据库
    发票摇奖数据汇总(数据行转列)
    最近整理的一些行列转换sql(有自己的,有别人的),留作记录
    【Android Developers Training】 40. 序言:通过NFC共享文件
    【Android Developers Training】 39. 获取文件信息
    【Android Developers Training】 38. 文件共享需求
    【Android Developers Training】 37. 共享一个文件
    【Android Developers Training】 36. 设置文件共享
  • 原文地址:https://www.cnblogs.com/JuanF/p/9272999.html
Copyright © 2011-2022 走看看