java collection

1) arraylist

基于数组进行实现

fast-fail机制: 当一个线程进行list遍历时,另一个线程remove数组元素,会抛出异常,这即是fast-fail机制,进行list遍历时,是存在状态依赖,所以线程非安全

2) LinkedList

双向链表,存在内部类Node(jdk7.0),需要保存当前节点,下一个节点和后一个节点

3) HashMap

会根据hash算法来计算key-value的存储位置

初始容量:16   默认加载因子:0.75

内部实现还是数组,HashMap成员变量数组table 是Entry类型的内部类数组,table的每个元素都是一个链表

插入数据过程: 先判断key是否是null,若是插入null值;key不为null则计算key的hash值,从而在table数组中找到索引位置,若相应位置有元素,则判断是否存在相同的key,如果存在,则直接覆盖原来key的value,否则将该元素保存在链头

hash算法能够使得table的元素冲突少,而且充分利用存储空间,hash值一定是小于数组大小的,所以一般求hash值都会对数组大小进行去模

在进行扩容时,肯定会重新计算hash值,否则table元素位置的冲突不会被解决,扩容的临界点等于: hashmap中的数组table长度乘以加载因子

4) HashSet

底层是通过HashMap实现,即有一个HashMap类型的成员变量

5) Hashtable

线程安全类,类似与HashMap,但是有区别,比如不能存放key为null的键值对

6) hashcode

作用是寻域,比如HashMap中,先通过hashcode快速查找出在table中的位置;在put操作时,会先查找出元素在table中的位置,如果查找到的位置有元素,需要调用equals方法,通过hashcode区分不同的元素,可以降低执行equals方法的概率

7) TreeMap

基于红黑树算法



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值