集合框架和list集合

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后面的元素又有重复的怎么办?

比如我们班上的李*宇同学就是这么想的

我想这么解释:它断掉就代表已经有一个重复了,所以后面的根本不用比较,数组里面至少包含一个相同的对象

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值