1. 原生数组带来的问题,抛出问题
- 原生数组容易造成超出边界,如果非要使用传统的数组,增删改查,就要用到数据结构,非常复杂
- CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写
由此引出Java Conllections FrameWork即Java集合框架,也可称为函数库
2. Conllections家族
- Java集合框架是一个包含一系列实作可重复使用集合的数据结构的类别和界面集合
- Java集合大致可以分为两大体系,一个是
Collection
,另一个是Map
这里是引用java.util.Collection下的接口和继承类关系简易结构图:
java.util.Map下的接口和继承类关系简易结构图:
3. 黑帮的帮规
lterables
集合层次结构中的根接口,可以理解成帮派老大
- 当我们要帮派帮忙时,一般请它下面的小弟来办事,所以用的时候找类来实现
- 所有类和接口都自身相关的规定,也必须遵守总集合的规定
4. ArrayList第一讲
ArrayList
类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList
继承了 AbstractList
,并实现了 List
接口可以自动扩容
泛型限定是指将类型做限定,可设置成只能存放String
类型
如果要进行CRUD,可以创建一个Student
类
正常来说Student
并不是以数组的形式输出的,而是toSring
,如果要再添加一个对象扩容的话,又要getter
setter
一遍
如果换成集合形式输出, 效果会大不同
这下扩容就方便多了,只需.add()
即可,也不用担心数组下标,不用像传统输出写一个for循环了
5. ArrayList第二讲
.add()
方法可以添加元素和替换元素
.add(0, 4)
表示在第0个下标处插入元素4
.addAll()
表示合并元素,讲arrayList_2
合并到arrayList_1
之后
查看源代码中,集合是先转换为数组,再拷贝到一份新数组返回
.toarray()
方法表示返回集合的数组形式
.clear()
方法表示清楚数据
.contaions()
方法用于判断字符串中是否包含指定的字符或字符串
.get()
方法获得集合里的元素,for循环遍历具有操作性,集合的长度要用.size()
,数组的长度用.length()
.get()
的源代码中,是先检查指是否存在,在返回元素值
如何对集合中每个元素操作呢?增强for循环 for each
,可以实现对每个元素值都加1