java编程思想笔记17-容器深入研究



17.1 完整的容器分类法
java5添加了
Queue接口(LinkedList已经视线了该接口并做了修改),及其实现PriortyQueue和各种风格的BlockingQueue,其BlokingQueue为多线程使用
ConcurrentMap接口及其实现ConcurrentHashMap,也是用于多线程机制的.
CopyOnWriteArrayList和CopyOnWriteArraySet,也是用于多线程机制的.
EnumSet和EnumMap,为使用enum而设计的Set和Map的特殊实现,

17.2 填充容器
addAll()和Collections.fill
17.3 Collection的功能方法
api
17.4 可选操作
实现类选择的去实现抽象方法,并不是一定会重写方法.
17.4.1 未获支持的操作
数组转化为集合
Arrays.asList();,对集合中的元素进行增删操作.
17.5 List的功能和方法
17.6 Set的存储顺序
HashSet,TreeSet,LinkedHashSet

17.7 队列
除了并发应用,Queue在java5中仅有的两个实现是LinkedList和PriorityQueue,它们的差异在于排序行为和不是性能.

17.7.1 优先级队列
PriortyQueue
17.7.2 双向队列
LinkedList
addFirst(),addLast();getFirst();getLast();
17.8 Map
映射表(关联数组)的基本思想是它维护的键-值对关联,因此可以使用键来查找值.
17.8.1 性能
性能是映射表中的一个重要问题,当在get()中使用线性搜索时,执行速度会相当的慢,而这正是HashMap提高速度的地方.HashMap使用了特殊的值,乘坐散列码,用来取代对键的缓慢搜索.散列码是相对唯一的.用以代表对象的int值,它是通过将该对象的某些信息进行转换而生成的.所有的对象都有hashCode方法,都能生成散列码.HashMap就是使用对象的HashCode进行快速查询的,此方法能够显著的提高性能.
17.8.2 StortedMap
TreeMap是其现阶段的一个唯一实现,可以确保键出去排序状态.
17.8.3 linkedHashMap
17.9 散列和散列码
17.9.1 覆盖hashcode()
设计hashCode时最重要的因素就是:无论何时,对用同一个对象调用hashCode(),都应该生成同样的值.


17.10 选择接口的不同实现
17.10.2 对list的选择
17.10.3 对Set的选择
17.10.5 对Map的选择
17.11 实用方法




















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值