集合精华总结(集合,list,set,queue,map)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
集合总结
集合框架(简化)
Collection接口用于表示任何对象或元素
组。想要尽可能以常规方式处理一组元素时,就使
用这一接口。注意:集合必须只有对象,集合中的元
素不能是基本数据类型。Collection不提供get()方法。
如果要遍历Collectin中的元素,就必须用Iterator。
MAP接口不是Collection 接口的继承。而
是从自己的用于维护键-值关联的接口层次结构
入手。按定义,该接口描述了从不重复的键到可
以重复值的映射。
方法外还拥有一些其他的方法。在集合框架
中,不仅仅是List,所有的集合类,如果需要判
断里面是否存放了的某个对象,都是调用该对象
的equals()方法来进行处理的。
组数据,但是对于存取方式有
一定的要求,必须遵循先进先
出原则(FIFO),常用的子类实
现LinkedList
Deque 是Queue的子接口,使用双端队列时,我们若只允许元
素都是一个方向进出,则实现了栈结构,栈结构存取元素要本着先进后
出原则(FILO) ,
LinkedList实现了Deque。
Set中的方法与直接使用Collection中的方法
一样。唯一需要注意的就是Set中存放的元素不能
重复。其实HashSet的实现,全部的操作都是基于
HashMap来进行的。
在java的集合中,判断两个对象是否相等的规则是:
1),判断两个对象的hashCode是否相等:如果不相等,认为两个对象也不相等,完毕;如果相等,转入2) 。(这一点只是为了提高存储效率而要求的,其实理论上没有也可以,但如果没有,实际使用时效率会大大降低,所以我们这里将其做为必需的。后面会重点讲到这个问题。)
2),判断两个对象用equals运算是否相等:如果不相等,认为两个对象也不相等;如果相等,认为两个对象相等(equals()是判断两个对象是否相等的关键)
在“集合框架”中有两种比较接口:Comparable接口和Comparator接口。
那Comparable 和 Comparator 接口有什么区别呢?
Comparable——“静态绑定排序”,Comparator——“动态绑定排序”。
用自定义类实现Comparable接口,那么这个类就具有排序功能,Comparable和具体你要进行排序的类的实例绑定。
而Comparator比较灵活,只需要通过构造方法指定一个比较器就行了实现它的自定义类仅仅定义了一种排序方式或排序规则。不言而喻,这种方式比较灵活。我们的要排序的类可以分别和多个实现Comparator接口的类绑定,从而达到可以按自己的意愿实现按多种方式排序的目的。
集合类的区别总结
Vector和Hashtable是线程安全的,其他的不是。