设为首页 加入收藏

TOP

Java中的Set与List 的关系与区别
2015-02-25 16:14:48 来源: 作者: 【 】 浏览:34
Tags:Java Set List 关系 区别

两个接口都是继承自Collection.?

List?(inteface)?

次序是List?的最重要特点,它确保维护元素特定的顺序.?
--ArrayList 允许对元素快速随机访问.?
--LinkedList 对顺序访问进行优化,向List?中间插入与移除的开销并不大,具有addFrist(),addLast(),getFirst,getLast,removeFirst和removeLast().这些方法使得LinkedList可当作堆栈/队列/双向队列.?


Set?(inteface)?

存入Set?的每个元素必须唯一,不保证维护元素的次序.加入Set?的Object必须定义equals()方法?
--HashSet 为快速查找而设计的Set?,存入HashSet对象必须定义hashCode().?
--TreeSet? 保护次序的Set?,使用它可以从Set?中提取有序序列.?
--LinkedHashSet  具有HashSet的查询速度,且内部使用链表维护元素的次序.?
它们之间的存储方式不一样:?
TreeSet采用红黑树的树据结构排序元素.?
HashSet采用散列函数,这是专门为快速查询而设计的.?
LinkedHashSet内部使用散列以加快查询速度,同时使用链表维护元素的次序.?

使用HashSet/TreeSet时,必须为类定义equals();而HashCode()是针对HashSet,作为一种编程风格,当覆盖equals()的时候,就应该同时覆盖hashCode().


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java 代理使用及代理原理 下一篇Java中equals和==的区别

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: