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:
采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引  但是缺点就是查找非常麻烦 要丛第一个索引开始


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章