Java -- 集合学习

集合(Collection):

java中集合都定义在util包

集合的特点

用于存储对象的容器。
集合的长度是可以改变的。
集合中不可以存储基本数据类型值

java集合框架图

源于百度图片(红框标记的需要了解和掌握)
在这里插入图片描述
我们要学习的主要有list、set、map
集合的共性方法有:
在这里插入图片描述

List

List 有序,可重复,List常见方法有以下:
在这里插入图片描述

ArrayList

优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程不安全,效率高。

Vector

优点: 底层数据结构是数组,查询快,增删慢。
缺点: 线程安全,效率低

LinkedList

优点: 底层数据结构是链表,查询慢,增删快。
缺点: 线程不安全,效率高

Set

HashSet:底层数据结构是哈希表。
无序,唯一、不能重复,依赖两个方法:hashCode()和equals()
LinkedHashSet:底层数据结构是链表和哈希表。(FIFO插入有序,唯一)
1.由链表保证元素有序 、2.由哈希表保证元素唯一
TreeSet:底层数据结构是红黑树。(唯一,有序)

Map<K,V>

Map一次添加一对数据
Map的Key不能重复,Value可以重复
常见方法:
在这里插入图片描述

HashMap

看到这里不得不就说一下HashMap:
1.内部存储结构:数组+链表+红黑树(JDK8)
2.默认容量16,默认装载因子0.75。
3.key和value对数据类型的要求都是泛型。
4.key可以为null,放在table[0]中。
5.hashcode:计算键的hashcode作为存储键信息的数组下标用于查找键对象的存储位置。equals:HashMap使用equals()判断当前的键是否与表中存在的键相同。

本文少部分图片转载于https://blog.csdn.net/weizhengzhou520/article/details/81806539

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值