zoukankan      html  css  js  c++  java
  • java 集合

    1.Collection接口(是List,Set,Queue接口的父接口)

      包含操作集合元素的方法:

        boolean add(Object o):该方法向集合中添加一个元素,如果集合对象被添加元素改变了,则返回true。

        boolean addAll(Collection c):该方法把集合c里的元素所有元素添加到指定集合,如果集合对象被添加操作改变了,则返回true。

        void clear():清楚集合里的所有元素,将集合长度变为0.

        boolean contains(Object o):返回集合里是否包含指定元素。

        boolean containsAll(Collection c):返回集合里是否包含了集合c的所有元素。

        boolean isEmpty():返回集合是否为空。当集合元素为0时返回true。

        Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素.

        boolean remove(Object o):删除集合中的指定元素o,当集合中包含了一个或多个元素o时,这些元素将被删除,该方法返回true。

        boolean removeAll(Collection c):从集合中删除c里面包含的元素(相当于调用该方法的集合减去集合c),如果删除了一个或一个以上的元素,则返回true.

        boolean retainAll(Collection c):从集合中删除c里不包含的元素(相当于调用该方法的集合变成该集合和集合c的交集),如果操作改变了调用方法的集合,返回true。

        Object[] toArray():该方法把集合转换成一个数组,所有的集合元素变成对应的数组元素。

    2.Iterator接口:Iterator接口也是java集合框架的一员,但它主要是用来遍历(迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器。

      定义的方法:

        boolean hasNext():如果被迭代的集合元素还没有被 遍历,则返回true。

        Object next():返回集合里的下一个元素。

        void remove():删除集合里上一次next返回的元素。

      注意:Iterator必须依附于Collection对象,若有一个Iterator对象,则必有一个与之关联的Collection对象。当使用Iterator迭代访问Collection集合元素时,Collection里的集合元素不能被改变,只有通过Iterator的remove方法

        删除上一次next方法返回的集合才行。否则将引发java.util.ConcurrentModificationException异常。

        除此之外,还可以使用foreach循环遍历集合元素。

    3、set集合

      类似一个罐子,集合里的多个对象之间没有明显得顺序。set集合与Collection基本完全一样,它没有提供任何其他额外的方法,实际上set就是Collection,只是行为略有不同(set不允许包含重复值)

      此外,set用equals方法判断元素是否相等。

      3.1 HashSet

        特点:1)不能保证元素得顺序。

           2)HashSet不是同步的

           3)集合元素可以是nu'l'l

        HashSet集合判断两个元素是否相等的标准是两个对象equals方法比较相等,并且两个对象的hashCode()方法返回值也相等。

        重写时注意:当两个对象equals返回true,那么他们的hashCode()返回的值也应该相同。

        3.1.1 LinkedHashSet

          是HashSet的子类,同样也是根据hashCode值来决定元素的存储位置,但它同时使用链表维护元素的次序,这样使得元素看起来是以插入顺序保存的,因此插入时,性能略低于HashSet,但在迭代访问

          集合元素时,有更好的性能,因为它以链表来维护内部顺序。

       3.2TreeSet

         TreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态,与HashSet相比,TreeSet提供额外的几个方法:

          Comparetor comparetor():如果TreeSet采用了定制排序,则该方法返回定制排序所使用的Comparetor,如果采用了自然排序,则返回null.

          Object first():返回集合中的第一个元素。

          Object last():返回集合中的最后一个元素。

          Object lower(Object e):返回集合中位于指定位置之前的元素(即小于指定元素的最大元素,参考元素不需要是TreeSet集合里的元素。

          Object higher(Object e):返回集合中位于指定元素之后的元素

          SortedSet subSet(fromElement,toElement):返回set的子集合,范围从fromElement(包含)到toElement(不包含)。

          SortedSet headSet(toElement):返回此set的子集,由小于toElement的元素组成。

          SortedSet tailSet(fromElment):返回此Set集合的子集,由大于或等于fromElement的元素组成。

          注:实现了Compareable 接口的常用类:BIgDecimal,BIgInteger,以及所有数值型对应的包装类,Character,Boolean,String,Date,Time.

    4.Map

      主要方法:

        void clear():删除该Map对象的所有key-value对。

        boolean containsKey(Object key):查询map中是否包含指定的key,如果包含则返回true.

        boolean containsValue(Object value):查询map中是否包含一个或多个value,如果包含,就返回true.

        Set entrySet():返回map中包含的key-value对所组成的Set集合,每个集合元素都是Map.Entry对象。

        Object get(Object key):返回指定key对应的value,如果此map中不包含该key,则返回null,

        boolean isEmpty()

        Set keySet():返回该map中所有key组成的Set集合。

        Object put(Object key,Object value):添加一个key-value对,如果当前map中已经有了一个与该key相等的key-value对,则新的key-value对会覆盖原key-value,并返回原value.

        void putAll(Map m):将指定map中的key-value复制到本map.

        Object remove(Object key):删除指定key所对应的key-value对,返回被删除key所关联的value,如果key不存在,则返回null.

        int size():返回该map中,key-value对的个数。

        Collection values():返回map里所有value组成的Collection。

        注:Map中,包含一个内部类Entry,该类封装了一个key-value对,Entry包含如下三个方法:

          1)Object getKey():返回Entry里包含的key值

          2)Object getValue():返回Entry包含的value值

          3)Object  setValue(V value)设置该Entry里包含的value值,并返回新的value值。

           

      

  • 相关阅读:
    P1005 矩阵取数
    [BZOJ2662][BeiJing wc2012]冻结
    [BZOJ1191]超级英雄Hero
    [bzoj1008] 越狱
    [bzoj1001]狼抓兔子 最小割
    网络流24题——负载平衡问题
    分形小山
    可并堆——左偏树、斜堆
    NOIP最优贸易
    洛谷P2073送花
  • 原文地址:https://www.cnblogs.com/UalBlog/p/10578763.html
Copyright © 2011-2022 走看看