• 各容器区别比较


    1. List:元素是有序的,可重复,可以根据索引操作数据

      1.1 ArrayList

        数据结构:数组

        线程不安全

      1.2 LinkedList

        数据结构:双向链表

        线程不安全

      1.3 Vector

        数据结构:数组

        线程安全:Synchronized

    2. Set:元素无序,不可重复,取出元素只能使用迭代器

      2.1 HashSet

        数据结构:哈希表 + 红黑树

        允许元素为null

        底层是一个HashMap实例

        非同步,线程不安全,存取速度快

      2.2 TreeSet

        数据结构:红黑树,可排序

        不允许元素为null

        底层是一个TreeMap

        非同步

    3. Map:键值对

      3,1 HashMap

        数组+链表+红黑树

        允许null作为键,null作为值

        线程不安全

      3.2 HashTable

        数组+链表+红黑树

        不允许null作为键,null作为值

        线程安全

      3.3 TreeMap

      TreeMap是一个有序的Key-Value集合,底层是通过红黑树实现的。键值对根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator进行排序,取决于其构造函数。

      TreeMap基本操作containsKey、get、put和remove时间复杂度都是log(n)。另外,TreeMap是非同步的。

    4.Collection & Collections

      Collection是一个集合接口,提供了集合对象进行操作的基本方法。直接继承接口的有List Set Queue。

      Collections是一个工具类,含有多种静态方法,用于对集合元进行排序、搜索以及线程安全等操作,服务

    于Collection。

    //1.排序
    Collections.sort(Collection c)
    //2.反转
    Collections.reverse(Collection c)
    //3.替换所有元素
    Collections.fill(List list , Object o)
    //4.拷贝
    Collections.copy(List list1,List list2)
    //5.循环移动,集合中的元素向后移m个位置,在后面被遮盖的元素循环到前面来。
    Collections.rotate(List list,int m)
    //6.交换
    Collections.swap(List list, int m, int n)
    //同步容器
    public static <T> Collection<T> synchronizedCollection(Collection<T> c) {
        return new SynchronizedCollection<>(c);
    }
  • 相关阅读:
    Linux命令未找到(command not found),误删Linux path原始路径
    Linux安装JDK1.8
    Python批量修改文件夹内所有json文件中部分内容
    [转]jQuery插件开发精品教程,让你的jQuery提升一个台阶
    使用apache的ab对页面进行压力测试
    http_load压力测试
    php json_encode数据格式化2种格式[]和{}
    PHP接收JSON格式的数据
    新浪短链接API接口示例
    一个提示样式
  • 原文地址:https://www.cnblogs.com/qmillet/p/12499838.html
Copyright © 2020-2023  润新知