• Java集合类


    如今经常用到Java中的各种集合类,所以特地在网上学习了一下Java的几种集合类,总结在这篇博客中。

    首先。集合是Java SE API所提供的一系列类(java.util包内)的实例,可以用于动态存放多个对象,便于我们操作。

    1.Collection接口

      Collection接口声明了一组管理它所存储元素的方法。其中常用子接口有:

        Set接口:存放的元素不包含重复的集合接口(元素无序且不重复).

        List接口:存放的元素有序且允许有重复的集合接口。

      Collection接口中定义的方法有:

        int size(): 返回此collection中的元素数。

        boolean isEmpty():判断此collection中是否包含元素。

        boolean contains(Object obj):判断此collection是否包含指定的元素。

        boolean contains(Collection<?> c): 判断此collection是否包含指定collection中的所有元素。

        boolean add(E element):向此collection中添加元素。

        boolean addAll(Collection<? extends E> c):将指定collection中的所有元素添加到此collection中。

        boolean remove(Object element):从此collection中移除指定的元素。

        boolean removeAll(Collection<?> c):移除此collection中那些也包含在指定collection中的所有元素。

        void clear():移除些collection中所有的元素。

        boolean retainAll(Collection<?> c):仅保留此collection中那些也包含在指定collection的元素。

        Iterator iterator():返回在此collection的元素上迚行迭代的迭代器。

        T[] toArray(T[] arr):把此collection转成数组。

      Set接口

        Set接口没有提供Collection接口额外的方法,但实现Set接口的集合类中的元素是不可重复的(重复:两个对象equals()相等)。常用的有:HashSet和  LinkedHashSet。

         HashSet不保存元素的存入顺序, LinkedHashSet根据元素的哈希码进行存放,同时用链表记录元素的加入顺序。Set集合存、取、删对象都有很高的效率。但对于要存放到Set集合中的对象,对应的类一定要重写equals()和 hashCode(Object obj)方法以实现对象相等规则。

      List接口

        List接口的集合类中的元素是有序的,且允许重复。List集合中的元素都对应一个整数型的序号记载其在集合中的位置,访问时可以根据序号存取集合中的元素。常用的有:ArrayList和LinkedList。

        ArrayList是使用数组结构实现的List集合,对于使用索引取出元素有较好的效率,但元删除或插入元素速度较慢。

        LinkedList是使用双向链表实现的集合,对频繁的插入或删除元素有较高的效率。

        List接口比Collection接口新增了几个实用方法:

          public Object get(int index) :返回列表中的元素数。

          public Object add(int index, Object element):在列表的指定位置插入指定元素,将当前处于该位置的元素和所有后续元素向右移动。

          public Object set(int index, Object element):用指定元素替换列表中指定位置的元素。

          public Object remove(int index) :移除列表中指定位置的元素。

          public ListIterator listIterator():返回此列表元素的列表迭代器。

    2.Map接口

      Map实现类中存储的“键-值”映射对是通过键来唯一标识,Map底层 的“键”是用Set来存放的,所以,存入Map中的映射对的“键”对应的类必须重写hashcode()和equals()方法。 常用String作为Map的“键”。常用的有:HashMap和LinkedHashMap。

      HashMap内部使用哈希表对 “键-值”映射对 迚行散列存放,是使用频率最高的一个集合。

      LinkedHashMap是HashMap的子类,它使用哈希表存放映射对 ,用链表记录映射对的插入顺序。

      Map接口中定义的一些常用的方法:

        Object  put(Object key, Object value):将指定的“键-值”对存入Map中。

        Object  get(Object key):返回指定键所映射的值。

        Object  remove(Object key):根据指定的键把此“键-值”对从Map中移除。

        boolean  containsKey(Object key):判断此Map是否包含指定键的“键-值”对。

        boolean  containsValue(Object value):判断是否包含指定值的“键-值”对。

        boolean  isEmpty():判断此Map中是否有元素。

        int  size():获得些Map中“键-值”对的数量。

        void  clear():清空Map中的所有“键-值”对。

        Set  keySet():返回此Map中包含的键的Set集。

        Collection values():返回此Map中包含的值的Collection集。

        Set<Map.Entry<K,V>> entrySet():返回此Map中包含的“键-值”对的Set集。

  • 相关阅读:
    软工-第一次团队展示
    软工-第一次结对编程作业
    软工-第一次个人编程作业
    软工-第一次博客作业
    Apache下安装配置mod_pagespeed模块,轻松完成网站提速
    PHP网站在Linux服务器上安全设置方案
    MariaDB-5.5.32源码编译安装
    LNMP最新源码安装脚本(定期更新)
    Java容器解析系列(7) ArrayDeque 详解
    Java容器解析系列(8) Comparable Comparator
  • 原文地址:https://www.cnblogs.com/qilin20/p/12354967.html
Copyright © 2020-2023  润新知