java集合学习记录
来源:互联网 发布:mac桌面新建文件夹 编辑:程序博客网 时间:2024/05/15 01:24
java集合类有一个根接口 Collection 称它为容器也不为过。Collection接口里面抽象了对一个集合能进行操作的所有方法。
它的子接口 set 和 list 又分别增加了对应自身特性的方法。这正是java面向对象思想的体现。还有一个特殊的接口Map接口,用来存储键值对。其中key是不可重复的,key的集合类似于set,value的集合可重复 类似于list。
下面 我记录一下 学习list 与 map的 心得体会。
list 其实就是一个线性表。元素有序的排列,其物理存储分为顺序存储和链式存储。 实现了对容器中元素进行增删改查诸多功能。 jdk中提供了list的数组实现arraylist 与 linkedlist。 我们可以直接使用的,非常方便。 但是如果自己简单的实现一遍,也算对数据结构的巩固了。
ArrayList 的实现 是基于 定义了一个固定大小Object数组,并定义了一个size来记录数组内元素的个数。 所有的操作都是围绕着这个数组与 size来实现的。很明显,ArrayList的插入与删除均为O(N); 但是索引为O(1). 关键的技术有 合法性检查、 数组的自动扩容 (新申请一个更大的数组,并将旧数组的元素复制到新的数组)、数组元素整体前移和后移。
LinkList的实现 定义了一个节点Node类,包含next,previous节点并提供一个Object属性。 定义了一个链表类 包含Node数组,与size。 所有的操作都是围绕这个Node数组和size来实现的。 插入与删除操作均是O(1),但是索引为O(n).
下面是map的学习体会
map接口 定义了所有关于 键值对集合 操作。 它的特性是Key不可重复,value可以重复。一个key只能索引到一个value。
map的操作hash实现 是数组与链表的结合。 定义了一个链表数组。数组元素就是一个链表。 通过key的hashcode值与数组大小取余 其余数作为数组下标。
- java集合学习记录
- Java集合框架学习记录
- java学习记录(三)集合
- java并发集合框架学习记录
- Java--集合学习记录(1)-Queue
- SQL学习记录:集合
- [记录] 算法学习集合
- java基础知识记录--集合
- java集合(记录)
- Java学习记录之集合框架工具类
- java学习记录(12)——集合
- Java基础学习记录之集合(Collection和Map)
- java集合类库学习记录———AbstractList
- java集合类库学习记录———ArrayList
- java集合类库学习记录———LinkedList
- java集合类库学习记录———PriorityQueue
- FFmpeg学习问题集合记录
- java基础集合:记录笔记
- linux下显卡信息的查看
- NSNotificationCenter
- 10岁少年与家人捕获巨大鳕鱼 重达22公斤
- 范式
- 7/29
- java集合学习记录
- Paid Roads(DFS)
- 大话重构连载7:重构是一系列的等量变换
- Relocations in generic ELF (EM: 40) ../h264-lib/build/obj/cavlc.o: could not read symbols: File in
- 法国恢复鬼混
- mybatis基本标签
- Cocoa 静态显示一个对话框2 [帮大家复习一次]
- 分行风险费和风险进行翻译返回fhjyj电话费的环境法第一款
- eclipse插件安装Eclipse HTML Editor