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
        有序 唯一
        底层数据链表 + 哈希表(数组和链表的结合)
        链表来保证有序 哈希表保证元素唯一

最新文章

  1. HTML 基础篇
  2. Android Frameworks层介绍
  3. 代码生成的地址:mygeneration
  4. iOS网络-03-NSURLSession与NSURLSessionTask
  5. php 数组定义、取值和遍历
  6. [Cocos2d-x For WP8]MotionStreak拖尾效果
  7. Nginx SSL配置过程
  8. debug,trace,release项目配置区别
  9. setsockopt()使用方法(參数具体说明)
  10. javascript异步加载详解(转)
  11. 4 Java学习之 反射Reflection
  12. 第01讲- Android背景知识
  13. flex容器解析
  14. 架构设计的UML图形思考
  15. python查询mysql中文乱码问题
  16. iOS 图片裁剪 + 旋转
  17. JS中闭包、函数与对象的介绍和用法
  18. php短信接口代码
  19. vxWorks下intel82567v3网卡驱动的更新
  20. 英语词汇周计划(1-1)group 1

热门文章

  1. redis集群报错:(error) MOVED 5798 127.0.0.1:7001
  2. 给标签设置disabled属性后提交不了数据
  3. 在linux中的rpm -ivh 是干什么的呢?
  4. Android 防止多次点击提交数据
  5. Java-Class-C:java.util.ArrayList
  6. 创建 Angular 8.0 项目
  7. Python实现字符串与数组相互转换功能示例
  8. Harbor任意管理员注册漏洞复现CVE-2019-16097
  9. 剑指offer——04从尾到头打印链表
  10. mybatis 处理CLOB/BLOB类型数据