Java中集合的常用类用法总结

Java中集合的常用类用法总结

  • 集合的由来
    • 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少
  • 数组和集合的区别
    • 区别1 :
      • 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
      • 集合只能存储引用数据类型(对象),集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象,比如int类型变Integer类型
    • 区别2:
      • 数组长度是固定的,不能自动增长
      • 集合的长度的是可变的,可以根据元素的增加而增长
  • 数组和集合什么时候用
    * 1,如果元素个数是固定的,推荐用数组
    * 2,如果元素个数不是固定的,推荐用集合

  • 集合继承体系

    • 单列集合Collection
      • 底层依赖的是双列集合(HashSet,两个藏起来一半)
    • 双列集合Map
单列集合
  • Collection
    • List(存取有序,有索引,可以重复)
      • ArrayList
        • 底层是数组实现的,线程不安全,查找和修改快,增和删比较慢
      • LinkedList
        • 底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢
      • Vector
        • 底层是数组实现的,线程是安全的,无论增删都慢(出现比较早,现在已经被集合替代了)
      • 如果查找和修改多,用ArrayList
      • 如果增和删多,用LinkedList
      • 如果都多,用ArrayList
    • Set(存取无序,不可以重复)
      • HashSet
        • 底层是Hash算法实现
        • LinkedHashSet
          • 底层是链表实现,便是也可以保证元素唯一,和HashSet原理一样
      • TreeSet
        • 底层是二叉树算法实现
      • 一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多用HashSet,HashSet的效率比较高
      • TreeSet在面试的时候比较多,比如问你有几种排序方式和几种排序方式的区别
双列集合
  • Map
    • HashMap
      • 底层是Hash算法,针对键
      • LinkedHashMap
        • 底层是链表,也是针对键
    • TreeMap
      • 底层是二叉树算法,针对键
    • 开发中用HashMap比较多

集合用法小结

  • 单列集合
    • 如果存储的是重复的元素,我们优先考虑的是ArrayList,如果不需要重复元素,我们优先考虑的是HashSet
  • 双列集合
    • 直接考虑的是HashMap,除非需要对键进行排序,我们才考虑TreeMap
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值