知识点: 容器的作用和概览 数组总结回顾 作用 是一种容器,可以在其中放置对象或基本类型数据.从而,实现使用数组管理一组对象. 优势 是一种简单的线性序列,可以快速的访问数组元素,效率高.如果从效率和类型检查的角度讲,数组是最好的. 劣势 不灵活:容量事先定义好,不能随着需求的变化而扩容. 比如:我们在一个用户管理系统中,要把今天注册的所有用户取出来,那么这个用户有多少个?我们在写程序时是无法确定的. 因此,数组远远不能满足我们的需求. 我们需要一种灵活的,容量可以随时扩充的容器来装载我们的对象
HashMap: *Map接口:采用是键值对的方式存放数据.无序 *常见的实现类: *--HashMap:基于哈希表的 Map 接口的实现. *常用的构造方法: * HashMap()构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap. * HashMap(int initialCapacity) 构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap *常用方法: * put(K key, V value)在此映射中关联指定值与指定键. *
/** * Collection接口 * 常用的方法: * add(Object e) 确保此 collection 包含指定的元素(可选操作). * size():获取集合中元素的个数 * remove(Object e):移除元素 * clear():清空集合中元素 * contains(Object e):判断集合中是否包含指定的元素 * isEmpty():判断集合是否为空 * iterator():获取集合对应的迭代器. * --List接口:不唯一,有序(插入顺序) * ----Ar
Java list与Python list相比较 Java List:有序的,可重复的.(有序指的是集合中对象的顺序与添加顺序相同) Python list(列表)是有序的,可变的. Java List分类: ---ArrayList:底层使用数组,线程不安全,查找速度快,增删速度慢 在迭代过程中,对集合对象的增删会出现异常 ---LinkedList:底层使用链表,线程不安全,查找速度慢,增删速度快 后进先出,类似于栈 ---Vector: 底层使用数组,线程安全,查找速度快,增删速度
先来看一个java里一些主要容器的继承图: 然后分别解析一下上面几种容器底层的数据结构以及一些实现: 1.ArrayList(非线程安全的) 底层的数据结构其实就是数组,但是它比数组优秀的地方在于他是动态的,即不必像数组那样固定大小,那么他是如何实现这种数据结构是数组,但是给我们看起来确实不固定大小的呢? ArrayList 是通过将底层 Object 数组复制的方式(System.arraycopy方法)来处理数组的增长: 当ArrayList 的容量不足时,其扩充容量的方式:先将容量扩充至当
1 1.集合 2 Collection(单列集合) 3 List(有序,可重复) 4 ArrayList 5 底层数据结构是数组,查询快,增删慢 6 线程不安全,效率高 7 Vector 8 底层数据结构是数组,查询快,增删慢 9 线程安全,效率低 10 LinkedList 11 底层数据结构是链表,查询慢,增删快 12 线程不安全,效率高 13 Set(无序,唯一) 14 HashSet 15 底层数据结构是哈希表. 16 哈希表依赖两个方法:hashCode()和equals() 17 执
Java 常用List集合使用场景分析 过年前的最后一篇,本章通过介绍ArrayList,LinkedList,Vector,CopyOnWriteArrayList 底层实现原理和四个集合的区别.让你清楚明白,为什么工作中会常用ArrayList和CopyOnWriteArrayList?了解底层实现原理,我们可以学习到很多代码设计的思路,开阔自己的思维.本章通俗易懂,还在等什么,快来学习吧! 知识图解: 技术:ArrayList,LinkedList,Vector,CopyOnWriteAr
集合框架:用于存储数据的容器. 特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合和数组的区别: 1:数组是固定长度的:集合可变长度的. 2:数组可以存储基本数据类型,也可以存储引用数据类型:集合只能存储引用数据类型. 3:数组存储的元素必须是同一个数据类型:集合存储的对象可以是不同数据类型. 数据结构:就是容器中存储数据的方式. 对于集合容器,有很多种.因为每一个容器的自身特点不同,其
一,java中各种集合的关系图 Collection 接口的接口 对象的集合 ├ List 子接口 按进入先后有序保存 可重复 │├ LinkedList 接口实现类 链表 插入删除 没有同步 线程不安全 │├ ArrayList 接口实现类 数组 随机访问 没有同步 线程不安全 │└ Vector 接口实现类 数组