黑马程序员技术交流社区
标题:
最近学到集合,很混乱
[打印本页]
作者:
张迁
时间:
2013-5-15 23:39
标题:
最近学到集合,很混乱
本帖最后由 张迁 于 2013-5-17 20:52 编辑
最近学到集合,学到了好多,如ArrayList.Linkedlist,Vector,HashSet,TreeSet,对这些集合使用的数据结构不是很明白,以及这些集合在什么情况下使用很混乱,求总结!
作者:
刘学明
时间:
2013-5-15 23:46
本帖最后由 刘学明 于 2013-5-15 23:54 编辑
集合不是很乱哦 如果感觉乱的话多看几遍 都有层次关系的
大致三大集合接口 List Set Map
List包括 ArrayList Vector LinkedList
Set包括 HashSet TreeSet
Map包括 HashTable HashMap TreeMap
他们各自有各自的特点:
List接口及其实现类
List接口继承于Collection接口。 List接口及其实现类是容量可变的列表,可按索引访问集合中的元素。
特点:集合中的元素有序(存入取出的顺序一致)、可重复;
实现类:
ArrayList是以Arayy方式实现的List,允许快速随机存取,相对于LinkedList不适合进行插入和移除元素操作;
LinkedList提供最佳顺序存取,适合插入和移除元素。
Vector和ArrayList功能是相同的 Vector多应用于同步中 ArrayList多应用于非同步中。一般开发用ArrayList。
2)、Set接口及其实现类
Set接口同样继承于Collection接口。
特点:集合中的元素无序(存入取出的顺序不一致),不包含重复的元素。
实现的类:
HashSet 能够快速定位一个元素,要注意的是:存入HashSet中的对象必须实现HashCode()方法;
TreeSet 将放入其中的元素按排序存放。排序有二种方式 一种是自然排序 让对象实现Comprable 一种是创建比较器排序,实现Comparator.
3)Map接口及其实现类
Map是一个单独的接口,不继承于Collection。Map是一种把键对象和值对象进行关联的容器。
特点:键对象不允许重复。
实现类:
HashMap 实现一个键到值映射的哈希表,通过键取得值对象;
Properties 一般是把属性文件读入流中后,以键-值对的形式进行保存,以方便读取其中的数据。
4)、Iterator接口
Iterator接口位于java.util包中,它是一个对集合进行迭代的迭代器。
集合容器(如:List、Set、Map等)本身提供了处理元素置入和取出的方式,但是单一选取元素的方法很受限制。所以我们要用Iterator去选取容器中的元素,它将容器转换成一个序列。
Collection、Set和List的区别如下:
Collection对象之间没有指定的顺序,允许有重复元素和多个null元素对象;它是Set和List接口的父类,是一种最通用型的集合接口;
Set各个元素对象之间没有指定的顺序,不允许有重复元素,最多允许有一个null元素对象;
List各个元素对象之间有指定的顺序,允许重复元素和多个null元素对象;
作者:
HM刘俊
时间:
2013-5-15 23:59
总结的很好啊,赞一个
作者:
刘正祥
时间:
2013-5-16 01:00
这个么,如果没有学过 数据结构 的话,想很快弄懂,不是那么容易。
记得以前我的老师说过:程序的最终目的就是处理数据,而程序的本质就是让复杂的问题简单化。
建议楼主学习的时候结合一下现实生活中的一些事物,把虚拟的东西与实体互换一下,兴许效率会更高一些。
加油哦。
作者:
付鑫鑫
时间:
2013-5-16 20:44
集合分类
collection: 一次储存一个对象,单列集合
List 有索引,可重复
ArrayList: 数组实现,查找快,增删慢
LinkedList:链表实现,增删快,查找慢
Vector 数组实现,线程安全
Set 无索引,去重复
HashSet 使用哈希算法去重复,效率高,但无序
LinkedHashSet 使用哈希算法去重复, 效率高,并且保留存储顺序 是HashSet的子类。
TreeSet 使用二叉树去重复,可以自定义元素存储的顺序
map: 一次储存两对象,键值对集合
HashMap 使用哈希算法去重复,效率高,但无序
LinkedHashMap 使用哈希算法去重复, 效率高,并且保留存储顺序
TreeMap 使用二叉树去重复,可以自定义元素存储的顺序
Hashtable 类似HashMap, 线程安全, 效率略低, 不允许null键和null值
Properties Hashtable的子类, 用来操作配置文件
作者:
shiweiCao
时间:
2013-5-17 00:46
一般的,使用集合,看具体的要求,有特殊要求的根据要求选择,没有要求的话,首选就是ArrayList .上面已经帮你总结了,自己多练练代码. 加深下.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2