【系列】重新认识Java——容器体系(Collection)

Java中的容器在开发过程必然会接触到的,也是作为一名合格的Java程序员必须要掌握的内容。各种面试、笔试中十有八九都会在容器上面做“文章”。由于每一类容器涉及的知识点都比较多,基于单一职责原则,本文并不会对特定容器做特别深入地介绍。文章在宏观层面上来研究一下Java中的容器体系,并比较各种容器之前的联系与区别,主要内容如下:

  1. Java容器的体系结构
  2. Collection体系
  3. Map体系

容器的体系结构

Java中的容器主要有Collection和Map,它们都是顶层接口,都位于java.util包下,实际使用地容器都是基于这两个接口延伸出来的。下面来看看在实际开发过程中使用的主要类的类图(基于JDK1.8),并简单地介绍它们的功能。

下面是Collection接口的类图:

Collection Structure

  1. List:是一种已知顺序的有序数据集,可容纳重复的元素。
  2. Set:是一种数学意义上的集合,最大的特点是不可容纳重复元素。
  3. Queue:即队列,与经典数据结构的队列一致。

下面是Map接口的类图:

Map Structure

  1. HashMap:即哈希表,与经典数据结构中哈希表一致,主要用于快速查找。
  2. HashTable:与HashMap功能基本一致,不过是线程安全的。
  3. SortedMap:经过排序的Map。
  4. ConcurrentMap:并发Map,主要用于多线程并发环境下。

Collection

Collection实现了Iterable(迭代器)接口,意味着其子类都可以利用迭代器模式来访问其中的元素。所以,我们可以用for...each...方式要顺序读取Collection中的元素,类似下面的代码:

public static void main(String[] args) {
    Collection<String> c = new ArrayList<String>();
    c.add("1");
    for (String s : c) {
        System.out.println(s);
    }
}

这种写法实际上不属于Java的原生语法,而是一种语法糖。它最终编译后的字节码主体部分为:

 public static void main(java.lang.String[]);
    descriptor: (
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值