zoukankan      html  css  js  c++  java
  • 基础篇—List、Set、Map

    List是存储对象的容器,可以存储任意类型的对象且长度可变,List的存储对象是有顺序的,可重复的。

    <1> List的接口框架

        ArrayList实现类通过数组实现,在向集合中增加或删除时,需要对集合进行增容和拷贝,所以增删慢;而数组可以直接通过索引进行查找,所以查询快;一般查询多增删少的,优先选择ArrayList集合。

        LinkedList实现类通过链表实现,在向集合中增加或删除时,无需扩容,所以增删快;但是不能通过索引进行定位查找,需要检索全部,所以查慢;一般增删多查询少的,优先选择LinkedList集合。

        Vector实现类也是通过数组实现,是线程安全的,所以一般效率较ArrayList低。

    <2> List接口的方法

        增加    add(Object object); 将指定对象存储到List容器中。addAll(List list); 将指定集合中的元素存储到List容器中。

        删除    remove(Object object); 将指定对象从容器中移除。removeAll(List list); 移除容器中与指定集合中的元素相同的元素。clear(); 清空容器中的所有元素。

        修改    set(Integer index,Object object); 将容器中指定位置的元素修改成指定元素。

        判断    isEmpty(); 判断容器是否为空。contains(Object object); 判断容器中是否包含指定对象。containsAll(List list); 判断容器中是否包含指定集合中的所有元素。

        获取    size(); 获取容器元素的数量。get(Integer index); 获取指定位置的元素。indexOf(Object object); 获取指定对象的位置索引,没有返回-1。lastIndexOf(Object object); 获取指定对象在容器中最后一次存储位置的索引。

    Set也是存储对象的容器,可以存储任意类型的对象且长度可变。

    <1> Set的接口框架

        HashSet实现类按照哈希算法来存取对象的,是无序的,不可重复,但是null和"null"同时存在,会显示[null,null],是Set接口的最优实现,其底层实现依赖于HashMap的键不能重复特性,

        TreeSet实现类使用红黑树来存储元素,实现了sortedSet接口,是有序存储和访问,不能写入null。

        LinkedHashSet实现类也是按照哈希算法存取对象的,是有序的,不可重复,但是null和"null"同时存在,会显示[null,null],其底层依赖于LinkedHashMap。

    <2> Set接口的方法

        并        addAll(Set set); 将指定集合中的元素并入容器中,并去重。

        交        retainAll(Set set); 将指定集合中元素与容器中元素取交集。

        删除    removeAll(Set set); 移除容器中与制定集合中的元素相同的元素。remove(Object object); 将指定对象从容器中移除。

        判断    isEmpty(); 判断容器是否为空。contains(Object object); 判断容器是否包含指定对象。containsAll(Set set); 判断容器是否包含指定集合的所有元素。clear(); 清空容器中的所有元素。

        获取    iterator(); 遍历容器中的元素。

    Map也是存储对象的容器,以键-值的形式存储对象,键对象不可重复可为null,值对象可重复可为null。

    <1> Map的接口框架

        HashMap实现类按照哈希算法存取键对象,无序的且不可重复

        TreeMap实现类使用红黑树存储键对象,有序的

    <2> Map接口的方法

        获取    get(Object key); 根据指定的key对象获取容器中键对应的值。entrySet(); 将容器中的所有键值对以key=value的形式保存在Set集合中。keySet(); 将容器中的所有键对象保存在Set集合中。 iterator(); 遍历容器中的元素

        添加    put(Object key,Object value); 将指定的键值对添加到容器。

        删除    remove(Object key); 移除容器中与指定key对象相同的键值对。

        判断    isEmpty(); 判断容器是否为空。contains(Object object); 判断容器是否包含指定对象。containsAll(Set set); 判断容器是否包含指定集合的所有元素。clear(); 清空容器中的所有元素。

        

             

        

        

        

  • 相关阅读:
    iOS ARC下命名规则
    performSelector may cause a leak because its selector is unknown
    performSelector may cause a leak because its selector is unknown
    Block的Retain Cycle的解决方法
    Block的Retain Cycle的解决方法
    iOS 5 ARC 入门
    iOS 5 ARC 入门
    Xcode 5 SVN配置
    Python基本语法_基本数据类型_序列类型详解
    Python基本语法_基本数据类型_序列类型详解
  • 原文地址:https://www.cnblogs.com/zzb-yp/p/10384387.html
Copyright © 2011-2022 走看看