数据结构(一)

本文探讨了一维数组的查询效率,包括遍历、直接寻址和有序数组的二分查找。接着介绍了数据结构的两种物理存储方式——顺序存储结构(如数组)和链式存储结构(如链表),分析了它们各自的优缺点。最后,讲解了JDK1.7版HashMap的数据存储机制,它是基于哈希表实现,结合数组和链表,以及put操作的处理流程。
摘要由CSDN通过智能技术生成

一、
1. 一维数组在做查询时的时间复杂度
①. 遍历整个数组时为O(n)
②. 当直接通过数组下标寻找时为O(1)
③. 当数组为有序数组时,采用二分法查找为O(logn)
2. 数据结构的物理存储结构:顺序存储结构和链式存储结构
①. 顺序存储结构:
定义:即存储时,内存地址连续,将逻辑上相邻的元素存储在物理
位置相邻的存储单元中。如数组
优点:无须为表示表中元素之间的逻辑关系而增加额外的存储空间;可以快速地存取表中任意位置地元素;存储空间利用率较高
缺点:插入和删除操作需要移动大量元素;当线性表长度变化较大时,难以确定存储空间的容量;容易造成存储空间的”碎片“
②. 链式存储结构:
定义:即存储时,内存地址不连续,对逻辑上相邻的元素不要求其
物理位置相邻,元素间的逻辑关系通过附设的指针字段来表示,如链表、树、图等等
优点:适合进行插入、删除等操作,灵活性高
缺点:存储空间利用率低
二、HashMap(JDK1.7版)
1.HashMap的数据存储方式为哈希表,也就是数组加链表;它的初始数组容量为16,数组中每个元素都保存着链表头节点的地址(若该位置没有元素则为null);在向HashMap中put(key,value)的时候,先使用hash算法计算哈希值,然后再和数组的长度减一做与运算。计算出此键值对应该保存到数组的那个位置上,如果此位置没有元素,意思就是链表的头结点为null,那么就新建一个node结点,把key,value以及next保存。

三、
1. equals与==的区别:
①. equals一般判断两个变量或者实例指向同一个内存空间的值是否相同。(这里的equals指的是重写过的)
②. ==是判断两个变量或者实例是否指向同一个内存空间
③. 通俗来讲,==是判断两个人是不是住在同一个地址,而equals是判断地址(相同或不同都可以)里住的两个人是不是相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值