zoukankan      html  css  js  c++  java
  • Java Collection、Map集合总结

    1.Java中的Collection集合总结

    Collection

      |---List(存储有序,可重复)

        |---ArrayList

          底层数据结构是数组,查询,增删慢。

          线程不安全、效率高

        |---Vector

          底层数据结构是数组,查询快,增删慢。

          线程安全、效率低。

        |---LinkedList

          底层数据结构是链表,查询慢,增删快。

          线程不安全,效率高

      |---Set(存储无序,元素唯一)

        |---HashSet

          底层数据结构是哈希表。

          依赖hashCode()和equals()两个方法进行保证元素唯一性,开发中使用开发工具自动生成就好。

          |---LinkedHashSet

            底层数据结构是链表和哈希表

            链表保证元素有序

            哈希表保证元素唯一

        |---TreeSet

          底层数据结构是红黑树。

          如何保证元素排序呢?自然排序或者比较器排序。

          如何保证元素唯一呢?根据比较结果是否为0来进行判断。

    Map

      |---HashMap

        底层是数组链表,使用hash算法来保证元素存储位置

          |---LinkedHashMap

      |---TreeMap

        底层是红黑树实现。

    集合中常见的数据结构总结

      ArrayXxx:底层数据结构是数组,查询快,增删慢
      LinkedXxx:底层数据结构是链表,查询慢,增删快
      HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
      TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序

    Collection和Collections的区别?

      1.Collection 是单列集合的顶层接口,有两个子接口List和Set

      2.Collections 是针对集合进行操作的工具类,可以对集合进行排序和查找等

  • 相关阅读:
    养花
    【bzoj1419】Red is good
    C++模板
    逆元求组合数
    【IOI2000】【洛谷1435】回文字串
    Centos 下启动mysql 报错: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)解决方法
    linux系统下进行安装phpMyAdmin(基于Centos)
    达梦数据的安装(Windows10 、linux环境下、麒麟系统下)
    2020-3-3 链表刷题(203. 移除链表元素)
    2020-02-03 刷题
  • 原文地址:https://www.cnblogs.com/hafiz/p/5452876.html
Copyright © 2011-2022 走看看