集合——数组容器笔记
集合
数组
1)存储的元素数据类型必须一致
2)存储空间的分配是连续的,并且是一次性分配的
int[ ] a = new int[3]
a[3]=9;
ArrayIndexOutOfBoundsException; ——— 数组下标越界异常
1.List
1)ArrayList
实现原理:内部使用一个Objiect数组来实现
动态扩展:新建一个数组,长度增加,将原来的数组元素复制到新的数组去
1)顺序存储结构:ArrayList(数组)
逻辑存储结构通屋里存储结构一致
存:末尾添加元素:不需要移动元素
从中间添加:移动指定位置后面的所有元素
最差状况:从第一个位置添加元素
最好状况:从最后一个位置添加元素
取:随机访问
首地址:100第十个元素的地址:100+(10*数据类型所占大小)
2)链式存储结构:LinkedList
逻辑存储结构通屋里存储结构没有关系
存:不需要移动元素,只需要修改相应的next和prev指针
取:不能水机访问,平均性能会比较差
最佳状况:查找时是第一个
最差状况:查找时是最后一个
2.Set
集合:确定性,互异性,无序性
HashSet:无序性,不能重复
求余法:通过每个元素的hashcode对底层数组的长度求余,计算出改元素在数组上的位置
解决方案:拉链法
动态扩展
加载因子:百分比
HashSet底层是用HashMap
2)LinkedHashSet
继承自HashSet,同样具有互异性
输出顺序同插入顺序
在HahsSet基础上维护了一张独立的链表,用于记录每个元素的插入顺序
注意:Set中判断元素是否重复的步骤是先看hashcode,如果hashcode不同肯定不重复,忽略equals方法;如果hashcode相同(hash冲突)再根据元素所在类型重写的equals方法进行判断p
3)TreeSet—只能插入同一类型的数据
不可重复
String元素—按字典排序
数字—按数字大小排
实质上,排序规则靠插入的元素类型锁重写的compareTo方法来决定(负数表示小于,0表示等于,正数表示大于)
如果一个类实现Comparable接口的compareTo方法,那么一旦方法的返回结果==0,就认为该元素跟调用此方法的元素相等,并且会忽略equals方法执行。
☆Map ————面试考点
通过映射的原理(key,value)—键值对
1.HashMap
无序列
互异性(相同的key,后面把前面覆盖)
key和value均可以设为null,并且互异性规则同样适用
2.LinkedHasMap
key值相同(在后面的)覆盖,value相同也打印
value怎么放置就怎么拿出来
key和value均可以设为null,并且互异性规则同样适用
3.Treemap
按照key值大小排序和value值不相关
不能存储key为null的值,value可以为null值
key值数据类型要同,value对于数据类型无关
按照第一个元素来定义数据类型
4.HashTable
类似于HashMap,同样具有无序性和不可重复性
同HashMap的区别:
1)key和value都不能为空
2)会影响集合的数据结构的方法做了线层同步(有synchronized关键字)
集合——数组容器笔记相关推荐
- javaSE基础——集合全面解析笔记
javaSE基础--集合全面解析笔记 英文单词 一.容器定义 1.1.容器继承体系 二.Set--------容器类 部分方法数学集合意义 2.1 HashSet 2.1.1 基本用法 2.1.2 特 ...
- java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...
本文关键词: java集合框架 框架设计理念 容器 继承层级结构 继承图 集合框架中的抽象类 主要的实现类 实现类特性 集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...
- 集合 数组 定义 转换 遍历 Arrays API MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 《回炉重造 Java 基础》——集合(容器)
整体框架 绿色代表接口/抽象类:蓝色代表类. 主要由两大接口组成,一个是「Collection」接口,另一个是「Map」接口. 前言 以前刚开始学习「集合」的时候,由于没有好好预习,也没有学好基础知识 ...
- 蓝桥杯JAVA-7.集合(容器)在竞赛中的使用
目录 个人博客 www.tothefor.com 蓝桥杯复习知识点汇总 介绍一些在竞赛中会用到的集合(容器),和使用方法.具体一些的用法可见<JAVA基础学习-集合> 而本文是快速介绍和一 ...
- Educoder–Java高级特性(第二章)- 集合框架【笔记+参考代码】
Educoder–Java高级特性(第二章)- 集合框架[笔记+参考代码] 第一关 编程要求 请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,创建ArrayList集 ...
- jquery遍历集合数组标签
jquery遍历集合&数组的两种方式 CreateTime--2017年4月24日08:31:49 Author:Marydon 方法一: $(function(){$("input ...
- java集合——数组列表(ArrayList)+散列集(HashSet)
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java集合--数组列表(ArrayList)+散列集(HashSet) 的相关知识: 0.2 ...
- ruby pluck用法,可以快速从数据库获取 对象的 指定字段的集合数组
可以快速从数据库获取 对象的 指定字段的集合数组 比如有一个users表,要等到user的id数组: select id from users where age > 20; 要实现在如上sql ...
最新文章
- 计算机病毒的八个特征,计算机病毒的五个特征- 1:.单项选择题(8)
- maya批量操作mel_MAYA对多个模型使用当前设置批量渲染并保存图片的MEL脚本
- 数据库(oracle) 索引
- oracle左右结合,oracle中的左右连接
- java一个简单的管理系统
- 硅谷之谜读后感以及最近总结
- 神经网络中误差值计算公式的选取
- C# vb .net实现相机视图效果滤镜
- java string 几个字节_java中字符串占几个字节
- DBCO-PEG4-SUE DBCO-PEG4-蔗糖
- 美国计算机基础课课程教学,美国大学计算机基础课程设置
- OSChina 周四乱弹 ——年终奖300,前提是过年加班,干不干?
- 微信商户平台,开通企业付款到用户零钱功能
- 如何使文章分栏脚注不分栏?
- C语言练习题——函数
- 宇视NVR录像机 一直滴滴报警,如何关闭
- html加拼音注释,HTML——格式化文本标记、拼音/音标注释ruby 标记和rt/rp 标记、段落缩进标记blockquote、预格式化标记pre...
- 我给文案新人的1点建议!
- java.lang.InstantiationException: entity.User 实例化异常解决
- python for循环加速_干货总结,24招加速你的Python代码,值得收藏