doctor java_Java集合框架

Java集合框架

集合框架图

Java%E9%9B%86%E5%90%88%E6%A1%86%E6%9E%B6%E5%9B%BE.jpg?version=1&modificationDate=1415338413000

Collection接口提供了一组操作成批对象的方法,它提供了基本操作如添加、删除。

List

List的最重要的特征就是有序;它会确保以一定的顺序保存元素。

ArrayList:一个用数组实现的List。能进行快速的随机访问,但是往列表中间插入和删除元素的时候比较慢。

LinkedList:对顺序访问进行了优化。在List中间插入和删除元素的代价也不高。随机访问的速度相对较慢。常用作栈、队列的实现。

Set

Set中的对象元素不能重复。

HashSet:为优化查询速度而设计的Set,设置散列函数实现索引。要放进HashSet里面的Object还得定义hashCode()。

LinkedHashSet集合同样是根据元素的hashCode值来决定元素的存储位置,但是它同时使用链表维护元素的次序。

TreeSet是SortedSet接口的唯一实现类,利用红黑树实现排序,TreeSet可以确保集合元素处于排序状态。

Map

键值对。

HashMap:基于hash表的实现,对键建立散列值的数组。

warning.gif 与hashtable之间的不同

1.继承不同

public class Hashtable extends Dictionary implements Map

public class HashMap  extends AbstractMap implements Map

2.Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable。

3.哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。

LinkedHashMap:很像HashMap,但是用Iterator进行遍历的时候,它会按插入顺序或最先使用的顺序(least-recently-used(LRU)order)进行访问。

TreeMap:基于红黑树数据结构的实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值