持有对象的管理(容器)

这里写图片描述

Collection

Collection 存放单一的对象,Map存放键值对。你可以用泛型制定插入的类型。使用的泛型的好处是在获取,插入对象的时候,不必为类型的转换而烦恼。

Map

特性:key-value,键值对,用的非常多,能够在开发中解决很多问题。使用的比较频繁的是HashMap和HashSet,基于散列的存放,性能也比较好。

List

基于数组,建立数字索引与对象的关联,因为List都是有序性的。如果要大量的随机访问建议使用ArrayList,因为他是基于数组索引的方式查找。如果要大量的插入,删除元素,建议使用LinkedList,因为他是基于链表结构,因为链表结构,在插入的时候只需要记住头部节点和尾部节点。

适配器设计模式

当有一个结构并需要另一个接口时,编写适配器就行解决问题。例如遍历的Iterable。就是很好的例子,返回一个Iterable对象,里面包含iterator的遍历,就不用覆盖iterator了。

Foreach与迭代器

每个容器都有自己的迭代器,foreach是基于数组的,也可以基于iterable接口,迭代器也是一种设置模式,在容器中都有属于自己的迭代器,一般对这个对象进行迭代,只要获取到他的迭代器就行获得这个对象的所有内容了。

Set

不接受重复的值,HashSet提供最快的查询速度,而TreeSet保持元素处于排序状态,LinkedHashSet已插入顺序保持元素。

Queue

LinkedList 有基于完整的栈的操作,想addFirst(),removeFirst()等,能够实现栈的操作,同时也能进行队列的操作。所以所有的Queue都是基于LinkedList的。

Vector ,HashTable,Stack等

在新程序中不建议使用,因为都过时了。

杂谈

关于容器的继承关系,可能比较不让人理解,也很奇怪。容器的类库设计一直都是设计难题,解决这些难题一般涉及到经常要满足彼此之间互为牵制的各方面需求,所以我们应该学会中庸之道。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值