zoukankan      html  css  js  c++  java
  • Collection单列集合中的常用实现类

    Collection 集合层次的根接口
        List 有序 有索引 可以重复
          ArrayList
            底层数据结构是数组 查询快 增删快
            线程不安全 效率高
          LinkedList
            底层数据结构是链表 查询慢 增删快
            线程不安全 效率高
          Vector
            底层数据是数组 查询和增删介于前两者之间
            线程安全 效率低

        Set 唯一
          在调用add()方法时:
          在底层中以map的形式存储,存储时调用元素的hashCode(),equals(),map会自动比较key值(就是hash值)
            先比较hash值
              如果对象的hash值不相等,直接添加元素到集合
            如果对象的hash值相等 判断equals
              如果相同 不添加
              如果不相同 添加 //不直接用equals是为了提高比较的效率

          HashSet
            底层是哈希表(数组和链表的结合) 查询和增删都比较快
            无序 唯一
            通过元素本身的hashCode()和equals()方法保证元素的唯一性
            如果元素是基本数据类型和字符串类型一般都已经重写了hashCode()和equals()这两种方法了,可以直接存储
            如果集合存储自定义数据类型时就需要自己重写这两个方法(快捷键 shift + alt + s)
              重写hashCode()
                A:如果数据是基本数据类型,hashCode值一般是本身,
                 如果是引用数据类型,直接调用hashCode()方法即可(相当于调用了继承自父类的hashCode())
                B:一般可以添加一个中间值来处理hash值小了容易相等的情况 (*31)

          LinkedHashSet
            有序 唯一
            底层数据链表 + 哈希表(数组和链表的结合)
            链表来保证有序 哈希表保证元素唯一


  • 相关阅读:
    Linux记录-shell实现脚本监控服务器及web应用
    Hadoop记录-hadoop和hbase监控有那些比较好的工具
    Hadoop记录-Ganglia监控HDFS和HBase指标说明
    Linux记录-CPU指标介绍
    Linux记录-I/O系统监控
    Linux记录-linux系统监控命令汇总
    Hadoop记录-hadoop2.x常用端口及定义方法
    Linux记录-linux系统常用监控指标
    在IIS6上部署WebService
    《软件测试自动化之道》读书笔记 之 请求-响应测试
  • 原文地址:https://www.cnblogs.com/chonglchong/p/6637498.html
Copyright © 2011-2022 走看看