1.UML(统一建模语言)
UML中一共有十种图
静态模型图:类图 对象图 包图 组件图 部署图
动态模型图:用例图 时序图 协作图 状态图 活动图
2.集合框架
大概的关系就是这样,大家看图
Collection接口
1.集合框架的顶级接口
2.是Set和List的父接口
3.不是Map的父接口
注意:集合中只能添加引用类型
八大基本数据类型
整数: byte,short,int,long
小数:double,float
布尔类型: boolean
字符型: char
List接口
特点:有序、对象可以重复
遍历方式:for循环 foreach 和迭代器(Iterator)
List优化
初始容量10,负载因子0.5
可指定初始容量
List元素删除有三种方法
1.foreach删除会出现以下结果
2.for循环
3.迭代器
综上可看出只有迭代器可成功删除集合内的元素
foreach会抛出并发修改异常,具体异常原因可参考<javaCoucurrentModificationException异常原因和解决方法>
for循环删除,由于ArrayList底层使用数组方式删除,当删除某一元素时,其余元素的下标会改变,导致继续删除时会略过下一元素,最终结果错误
队列与堆栈
使用linkedlist定义一个集合
start()可视为车
push(string s)可视为装车
pop()可视为发射
removiefirst方法为先入先出
removielast方法为先入后出
list集合去重
初学者可能会用图中if条件去重,字符串类型的可以进行判断,但是对象不能
注意:去重与hashcode无关,必须重写equals
重写equals后分别在hashcode与equals方法里面输出一句话
控制台出现两句我是equals的原因是 :list里面的第二个对象与比较对象相同,已经出现重复,所以比较了两次就断掉了,有的同学会想断掉了之后list后面的元素又有重复的怎么办?
比如我们班上的李*宇同学就是这么想的
我想这么解释:它断掉就代表已经有一个重复了,所以后面的根本不用比较,数组里面至少包含一个相同的对象