Java集合框架(JCF)

来源:互联网 发布:java中static域 编辑:程序博客网 时间:2024/05/24 00:09
集合的由来:(1)、处理多个相同数据我们采用数组,但数组空间固定不能动态增长,插入或删除元素比较麻烦。我们使用集合来解决这个问题。

(2)、集合特点:元素类型可以不同、集合长度可变、空间不固定。

---概念:为了解决某一个特定的问题,预先设计好的一系列具有继承或者实现关系的类接口。

---Collections Arrays提供算法操作框架的工具类。为了算法而存在的。

---Collection接口 由它衍生出List和Set接口,间接衍生出Map接口。

---List列表 特点:线性 有序的 指存放在里面的元素放置的位置是有顺序的,这种元素可以通过前一个元素找到下一个元素。
---List接口的实现类:
add()---向集合中添加元素(增) remove()--将元素从集合中移除(删) get()---从集合中获取元素(查)

size()---查看集合长度

---ArrayList:底层实现用的是数组,存放的元素 都是在连续的内存空间中。
LinkedList:底层实现使用的是链表,不是普通链表,还是双向链表。存放的元素没有连续的。每个元素后面都有下一个元素的引用。
双向链表是指 还能通过后面一个元素找到前一个元素。往中间操作大量的操作数据的时候用。
Vector:线程更加安全 底层结构也是数组。


---Set集 特点:里面的元素是不能重复的。使用自己内部的一个排列机制放置元素。操作一系列数据,而且数据无重复时选择S而调节扣的实现类。
---Set接口的使用方法:add()---想集合中添加元素(增)。 remove(Object o)---将元素从集合中移除(删)。
size()---查看集合长度。

---严格意义上,如果一旦重写了equals()方法,就必须要重写HashCode()方法,equals返回true,hashCode方法值要相同,equals返回false,不要求
hashCode一定要返回不同。 Set集合根据两个对象的equals()方法和hashCode()方法
来判断两个对象是否重复;要求:equals返回true,hashCode方法值要相同

---HashSet:速度快 不排序 TreeSet:速度慢,排序

---Map映射 特点:都是通过键值对的方式来存放数据。 一列数据对,使用自己内部的一个排列机制放置元素。
key和value可以是任何类的实例。在Map中不允许出现重复的键(key),值(value)是允许重复的。

---put() 将键值对存入集合 ---get() 根据键取出元素的值 --- keySet()将Map中的所有键取出形成一个Set
---values()将Map中所有的值取出形成一个Collection ---remove 根据键移除值

---HashMap:速度快,不排序 ---TreeMap:速度慢,不排序




---Iterator 迭代器,遍历集合。所谓遍历是指从集合中取出每一个元素的过程
---Comparable内部比较器 指这个接口让被排序的元素被继承 ---Comparator外部比较器 按照外部给予的排序方式排序


---泛型:帮助我们限制某个集合对象,只允许放入某种类型元素。
0 0
原创粉丝点击