1.总的架构如下:
Collection接口:
Set接口:
HashSet具体类
LinkedHashSet具体类
TreeSet具体类
List接口:
ArrayList具体类
LinkedList具体类
向量类Vector具体类
Stack具体类
Map接口:
HashMap类
LinkedHashMap类
TreeMap类
Collection持有单个元素,而Map持有相关联的键值对
2. Collection类型的两大类Set和List
A. Set和List接口都扩展自Collection,Set就是高中数学里所说的集合,不允许重复,无序。 List就像一个表,可以重复,元素在表里有顺序的放着。
B. HashSet的对象必须实现hashCode方法,javaAPI大多数类实现了hashCode方法。
LinkedHashSet实现了对HashSet的扩展,支持规则集内元素的排序,在HashSet中元素是没 有顺序的,而在LinkedHashSet中,可以按元素插入集合的顺序进行提取
TreeSet保证集中的元素是有序的,有2种方法可以实现对象之间的可比较性:
1,添加到TreeSet的对象实现了Comparable接口;
2,给规则集的元素指定一个比较器(Comparator)
C. 效率上,如果按照插入的顺序提取元素的时候,应该采用LinkedHashSet,但是如果没有要求的 话,HashSet的效率要比LinkedHashSet的高,还是因为LinkedHashSet是按照插入集合的顺 序存储的;LinkedHashSet只是按照添加的的先后顺序在存储时保持顺序,要给集合元素添 加顺序属性,需要使用TreeSet(集合元素有排序关系)。
3. List
A. List集合的特征:集合有序排列,可以有重复元素,可以随机访问(使用位置index添加、删除、访问元素)
List的实现类有ArrayList,LinkedList,这两个都是非线程安全的,Vector是线程安全的List实现类,Stack是vector的子类。
B. 插入数据上面的区别,在ArrayList的前面或中间插入数据时,必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;
而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。
C. Vector跟ArrayList的区别,前者的方法添加了同步处理,因而是线程安全的,但是后者 的效率高,所以没必要进行同步处理的时候都是用ArrayList;当需要增长时,Vector默认 增长为原来一培,而ArrayList却是原来的一半
4. Map
A. Map是映射,跟前面的Set和List有本质的区别。
散列图HashMap,链式散列图LinkedHashMap,树形图TreeHashMap是映射的3种实现,从 名字上来说,有了上述Set的3种实现的分析,这个也是类似的。
HashMap:效率高
LikedHashMap:按照添加顺序存储,可以按添加顺序取出
TreeHashMap:排序性。
B. HashMap和Hashtable的区别
同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不 是同步的 ;
值:HashMap允许null值(key和value都可以),而 Hashtable不允许。
5 . Collection 和 Collections的区别。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
分享到:
相关推荐
xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...
Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结
Java集合框架详解Java集合框架详解Java集合框架详解
java集合框架图java集合框架图java集合框架图java集合框架图java集合框架图
内含大量java集合框架方面常被面试官问到的经典面试题。
集合是将多个元素组成一个单元的...Java集合框架,为我们提供了一套性能优良、使用方便的接口和类,我们不必再重新发明轮子,只需学会如何使用它们,就可以处理实际应用中出现的问题了Java集合框架位于java.util包中
本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!
6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6....
JAVA学习 Java集合框架.ppt
学习Java集合框架的讲义、笔记,希望大家多提意见。时间关系没有Collections,Arrays的内容,以后补上!
学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在Java集合框架中提供的一些实现。 本书内容非常丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力...
Java集合框架,set、list接口及其子集,接口的继承关系
Java集合框架使用总结 前言: 本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档。 一、概述 数据结构对程序设计...
java集合框架
一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合...
List set ArraryList Map java集合框架笔记 基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用
数据结构和Java集合框架,国外经典教材,开发必备
Java集合框架常见面试题.pdf
Java集合框架概述 Java集合框架是一个抽象数据类型的框架,它提供了一组接口和类,可用于处理各种类型的数据结构,如列表、队列、集、映射等。 Java集合框架的主要特点是: 1、可扩展性:Java集合框架提供了一组可...