黑马程序员技术交流社区
标题:
面试问题----4---集合
[打印本页]
作者:
菜鸟的求学路
时间:
2015-5-21 17:39
标题:
面试问题----4---集合
可能大家也会知道那些事Java基础中的重点,不错,你才得没错,重点的部分也是面试中的重点:
下面的就是集合框架的知识点
一.集合的作用:
1.我们之前存储大量数据,可以使用数组:
数组的弊端:
1).要先期指定长度;
2).一旦指定长度,其长度不能改变;
2.Java为我们提供了大量的"集合类",供我们程序员使用;
3.这些"集合类"内部使用了不同的"数据结构"来存储对象;
它们有些:查询快;增删慢;
有些:查询慢;增删快;
有些:查询快;增删快;但是无序的;
要根据我们的需要选择不同的集合类;
二.集合框架的层次结构:
Collection(顶层接口):
|--List(接口):
|--ArrayList(类):数组实现;线程不安全的,效率高;
|--Vector(类):数组实现;线程安全的,效率低;
|--LinkedList(类):链表实现;线程不安全的,效率高;
|--Set(接口):
|--HashSet(类):哈希表;无序的;线程不安全的,效率高;
|--TreeSet(类): 红黑树;排序的;线程不安全的,效率高;
比较的两种方式:
1.存储的对象要实现:Comparable接口,重写compareTo()方法;
2.使用"比较器"实例化TreeSet:Comparator接口,重写compare()方法;
|--LinkedHashSet(类):链表,哈希表;由链表保证有序,由哈希保证唯一。线程不安全的,效率高;
Map(顶层接口):
|--HashMap(类);哈希表实现的图:无序的。线程不安全的,效率高;
|--LinkedHashMap(类):链表哈希表实现;有序的。线程不安全的。
|--TreeMap(类):红黑树实现;排序的(基于自然排序或比较器)。线程不安全的。
|--Hashtable(类):哈希表实现;无序的。线程安全的,效率低;
三.数据结构:
1.数组:随机获取元素快;增、删慢;
2.链表:查找慢;增、删快;
3.哈希表:结合了数组和链表的优点,查找、增、删都很快;
4.树:对元素排序的。
四.各种集合的遍历方式:
使用多态时:
Collection:
|--toArray():获取一个Object数组,然后再遍历数组;
|--iterator()迭代器:Iterator it = col.iterator();
while(it.hasNext()){
Object obj = it.next();
}
|--增强for
List:
|--Collection的所有方式;
|--结合Collection的size()和List的get()方法,使用for()循环;
Set:
|--Collection的所有方式;
Map:
|--获取所有键的集合keySet(),之后再遍历Set(使用Collection的方式)
|--获取所有"键值对"对象entrySet(),之后遍历Set(使用Collection的方式)
五.怎么选择哪种集合:
根据需要:
是否需要"键值对"的形式:
是:Map
是否需要"有序":
是:LinkeHashMap
否:HashMap
如果需要"排序":
是:TreeMap
否:Collection:
是否"有序","允许重复":
是:List
对元素内容,经常的查询,但很少的增、删:选择数组;
对元素内容,经常的增删,很少获取元素:选择链表;
否:Set
是否需要排序:
是:TreeSet
否:HashSet
对于三种集合,常用:ArrayList,HashSet,HashMap
作者:
小王泽哥
时间:
2015-5-21 18:10
总结的不错 面试会遇到么
作者:
xcj199106
时间:
2015-5-21 21:19
楼主给力,感谢
作者:
张海旭
时间:
2015-5-21 23:19
:victory:顶顶顶
作者:
白水丶
时间:
2015-5-21 23:30
学习了。。。
作者:
xuelanghu120
时间:
2015-5-22 00:08
总结的不错
作者:
宥美
时间:
2015-5-22 08:51
学习了 楼主真棒
作者:
guojiadui
时间:
2015-5-22 08:57
这是视频上的笔记吧
作者:
hellotaomi
时间:
2015-5-22 11:00
楼主很棒,总结的比较全面
作者:
cunbai
时间:
2015-5-22 11:18
谢谢楼主总结,学习到了!
作者:
嘉Ming
时间:
2015-5-22 11:31
学习了,谢谢分享
作者:
hydrogen11
时间:
2015-5-22 11:49
谢谢楼主分享!学习了!
作者:
灯火通明
时间:
2015-5-22 11:59
感谢楼主经验
作者:
348532020
时间:
2015-5-22 12:22
收藏了,感谢
作者:
ddddk
时间:
2015-5-22 12:45
总结不错 不过也要结合实际操作来加深认识
作者:
tougboy
时间:
2015-5-22 13:13
谢谢 复习知识点挺合适
作者:
hkbat
时间:
2015-5-22 14:47
来看看!!
作者:
yokii83
时间:
2015-5-22 15:31
这个写的可以。
作者:
王建伟
时间:
2015-5-22 18:06
牛啊,学习了
作者:
开到荼靡
时间:
2015-5-22 18:08
不错哦,这总结
作者:
q617939894
时间:
2015-5-22 22:00
LZ总结的不错!学习了!
作者:
黄冬
时间:
2015-5-22 22:16
总结的不错
作者:
sss18310878521
时间:
2015-5-22 22:22
呵呵,真牛逼啊,
作者:
王连涛
时间:
2015-5-22 22:27
总结的很到位, 刚刚学完今晚考试了,才考了84很伤心,试题满满全是坑啊
作者:
破烂小白
时间:
2015-5-22 22:30
学习了。。。
作者:
张清华
时间:
2015-5-22 22:54
学习了,thanks!!
作者:
快乐Anne
时间:
2015-5-22 22:54
学习了,谢楼主
作者:
追忆似水年华
时间:
2015-5-22 22:56
不错,学习了。
作者:
鸣人H
时间:
2015-5-22 22:59
给力的楼主
作者:
Lucus
时间:
2015-5-22 23:09
感谢楼主的总结,总结的很多到位!!!
作者:
wx_yTUQXu69
时间:
2015-5-23 01:11
谢谢分享
作者:
疯狂的大猫
时间:
2015-5-23 09:22
虽然还没有学到,算是预习一遍了吧
作者:
791180016
时间:
2015-5-23 10:15
不错不错,lz多写点吧
作者:
景彬
时间:
2015-5-23 16:35
多谢楼主分享,总结的很全面。
作者:
zhou330667146
时间:
2015-5-23 21:48
顶顶顶顶顶顶
作者:
Sky丶
时间:
2015-5-24 00:57
都说不错 估计不错 还没学到呢
作者:
怪学究
时间:
2015-5-24 01:14
今天正好面试用
作者:
LoveMyself
时间:
2015-5-24 01:28
感觉集合真难缠
作者:
jiatengde
时间:
2015-5-24 01:32
谢谢楼主了,总结的不错
作者:
時間_|_的灰
时间:
2015-5-24 04:00
不错哦。加油哈
作者:
王建伟
时间:
2015-5-24 08:09
学习了。。。。。。。。。
作者:
冷雨敲窗被未温
时间:
2015-5-24 08:51
不错 ,这个可以记一下。
作者:
_hy
时间:
2015-5-24 09:07
已阅。。。。
作者:
幸福与我零距离
时间:
2015-5-24 09:20
有些还是看不懂,慢慢学吧
作者:
二大爷
时间:
2015-5-24 09:22
这个要收藏
作者:
yang2015
时间:
2015-5-24 13:47
顶顶顶:victory:
作者:
Animal
时间:
2015-5-24 13:59
很感谢楼主给出了这么详细的解释,其实每个人不用太过纠结,只要做出选择,并持之以恒的走下去,都会有自己的明天。至于明天怎么样,都是自己的选择,走就是了。
作者:
lhwinner
时间:
2015-5-24 14:10
受教了,总结得很到位
作者:
!85684009ex
时间:
2015-5-24 14:21
膜拜~膜拜~大神保佑!
作者:
流水0215
时间:
2015-5-24 14:31
不错,赞一个
作者:
青春印记深圳
时间:
2015-5-24 14:39
给力刚学了集合
作者:
彭越
时间:
2015-5-24 14:50
piaoguo啦啦啦
作者:
時間_|_的灰
时间:
2015-5-27 19:23
总结得比较全面
作者:
Melo
时间:
2015-5-27 19:39
给力啊 6666
作者:
zuoyou
时间:
2015-5-27 19:50
不错,,,,
作者:
l598790586
时间:
2015-5-27 20:20
给力,谢谢分享
作者:
YRDHelloworld
时间:
2015-5-27 20:34
总结的非常好 ,面试会遇到么
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2