4.毕向东_集合框架总结

1.基本概要
集合框架:Map+Collection

---->用集合干嘛?
面向对象的事物使用对象&&对象存储使用集合

---->几种遍历的方式:
1.传统for:可以定义角标,比较完善。
2.高级for:只能获取元素 不能对集合进行操作
3.迭代器:除了遍历至少还可以remove集合中元素的动作 listiterator可以在遍历过程中增删改查

---->集合选择:
实际需求没有说保证元素唯一,一般选择list集合即可。

---->直观事例图

2.集合和数组:

3.Set集合:
*元素是无序的
<存入和取出的顺序不一定一致>
*元素不可以重复
<要保证元素的唯一性>

——>HashSet:
<没有复写方法之前使用操作系统底层计算哈西值>
先:hasCode()----> 地址是否相同?
不同—>视为不重复的 需要注意!! 不会调用equals()
相同—>继续判断: 后: 调用 equals()判断 ---->是否是同一对象?
String类的equals方法源码:
——>TreeSet:
<必须具备比较性,所以要定义好两种中的一种排序方法>

—>排序时,主要条件相同时,一定要判断一下次要条件
—>返回0的时候表示相同就可以 确保元素的唯一性了。

1.元素实现comparable接口重写compareTo()——>元素自身具备比较性<默认顺序>
2.定义一个comparator接口的比较器——>集合自身具备比较性<元素自身不具备比较性or不是所需要的顺序>

二叉树这样的数据结构—>可以减少比较次数

4.List集合:
根据角标索引实现 增删改查

特有的ListIterator!!!

——> 迭代器只知道迭代前集合的情况,突然并发又添加元素 会出现异常
ArrayList:
采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦。
LinkedList:
采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引  但是缺点就是查找非常麻烦 要丛第一个索引开始


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值