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值。

       

  

原文地址:https://www.cnblogs.com/UalBlog/p/10578763.html