zoukankan      html  css  js  c++  java
  • Map List Set的区别

    Map List Map的主要区别如下:

      set List 是实现了Collection接口的子接口;Map本身就是一个接口;

      list数据存放时有序的,允许有重复元素;set数据存放时无序的,不允许有重复数据;map是以键值对的形式存放,存放是无序的,key值不允许有重复的,value值可以有重复的;

      list里面可以有任意的null值;set数据只允许有一个null值,如果多个数据都是null,那么只存在一个;map的key值只能有一个null值,value值可以有任意数量的null值;

    实现类(只说几个平时在用的)

      list:ArrayList,LinkedList

      set:HashSet,TreeSet

      Map:HashMap,TreeMap

    ArrayList和LinkedList的区别

      ArrayList底层为数组结构,数据存在内存中的地址是连续的,所以查询效率高,直接用数组下标就可以得到数据,而插入,删除要移动操作位置前后的元素。

      LinkedList底层为链表结构,数据存在内存中的地址不是连续的,查询的时候需要通过指针一个一个去查找,效率没有ArrayList高,但是插入,删除操作的时候,只需要改变指针的指向即可,不需要移动操作位置前后元素。

     ArrayList费空间的地方就是真实的数组长度要大于实际存储的元素的长度,为了方便添加数据;而LinkedList费空间的地方是一个位置要存本身的数据还有存指向前后的指针;

    HashMap和HashTable的区别

      HashMap不是线程安全的,HashTable是线程安全的,内部的方法都是用synchronized修饰的,所以HashMap效率要比HashTable高;

      HashMap允许键值为null,HashTable不允许,只要有为null就会报空指针;

    HashSet 和TreeSet的区别

    HashSet 
    无序(存入和取出的顺序不同),不重复,无索引
    底层是哈希表结构,也称散列表结构,查找和删除快,添加慢
    像HashSet中存储自定义对象需要重写hashCode()和equals()方法

    TreeSet
    可以对set集合中的元素进行排序,默认按照asic码表的自然顺序排序
    之所以treeset能排序是因为底层是二叉树,数据越多越慢,TreeSet是依靠TreeMap来实现的
    像TreeSet中存储自定义对象需要实现comparable接口

  • 相关阅读:
    重置csr
    修改node节点名称
    k8s报错解决
    k8s测试容器之间是否互通
    MyEclipse------executeBatch()使用方法
    MyEclipse------execute()使用方法
    MyEclipse------如何查询MySQL数据库里面表的信息
    MyEclipse------如何连接MySQL
    MyEclipse------从服务器下载文件
    MyEclipse------各种问题解决方法
  • 原文地址:https://www.cnblogs.com/yuanxls/p/11798593.html
Copyright © 2011-2022 走看看