`

「译」Java集合框架系列教程二:集合接口

    博客分类:
  • Java
 
阅读更多

原文:http://docs.oracle.com/javase/tutorial/collections/interfaces/index.html

译文:Java集合框架系列教程二:集合接口

核心集合接口封装了不同类型的集合,如下图所示。这些接口使得我们可以操作集合而不必关心它们的具体实现细节。核心集合接口是Java集合框架的基础。正如我们可以从下图看到的,核心集合接口形成了层次结构:

Set是一种特殊的集合,而一个SortedSet是一种特殊的Set,以此类推。注意上图的层次结构中包含两棵独立的树 — Map不是一个真正意义上的集合。

注意所有的核心集合接口都是泛型化的(generic)。例如下面是Collection接口的声明:

public interface Collection<E>...

<E>语法告诉我们这个接口是泛型化的。当我们声明一个集合实例时,我们可以也必需指定集合中对象的类型。指定类型使得编译器能在编译时验证集合中的元素的类型都是正确的,从而减少运行时错误。如果想获取更多的关于泛型的信息,敬请参考Java Generic Turtorial 。

当你学会使用这些接口后,你就了解了Java集合框架中的大部分内容。本章讨论关于如何有效使用这些接口的一些建议,包括何时使用何种接口。我们也将学会每个接口的一些习惯用法。

为了保证核心集合接口的数量可控,Java平台没有为每一种集合类型的变种都提供单独的接口(这些变种包括不可变、固定大小以及只可追加)。相反,每个集合接口上的操作都是可定制的(可选的),某个集合接口的实现可能不会支持所有集合操作。如果调用集合不支持的一个操作,将抛出UnsupportedOperationException。集合接口的实现必需用文档记录它所支持的集合操作。

下面的列表描述了Java集合框架的几个核心接口:

  • Collection:集合层次结构树的根接口。一个Collection表示一组元素对象。Collection接口是所有集合对象都必须实现的接口。一些Collection接口的实现允许重复元素,而另外一些则不允许。Java平台没有提供任何对这个接口的直接实现,但是提供了一些更加专用的子接口,比如Set接口和List接口。更多请参考The Collection Interface中文翻译
  • Set:一个不能包含重复元素的集合。这个接口对应数学上的Set,被用来表示数学意义上的集合,比如一手牌、一个学生选的课或者机器上运行的进程。更多请参考The Set Interface中文翻译
  • List:一个有序集合(有时候又叫做序列)。List可以包含重复元素。使用List可以精确控制每个元素在List中的位置,可以指定index插入元素或者访问元素。如果你已经使用过Vector,那么你已经熟悉了List的一般功能了。更多请参考The List Interface
  • Queue:队列。除了基本的集合操作外,一个Queue提供了额外的插入、删除和审查元素操作。Queue一般(但非必须)将元素组织成FIFO(先进先出)形式。有一个例外是优先队列,它按照用户提供的Comparator或者自然序排列元素。不管怎么排序,队列的头始终是第一个被移除的,当调用remove或者poll方法后。在一个先进先出队列中,新插入的元素总是放到队列末尾。其他种类的队列可能会使用不同的放置规则。所有队列实现都必需指定它的排序属性。更多请参考The Queue Interface
  • Map: 将键(keys)映射到值(values)的对象。一个Map不能包含重复的键;每个键最多只能映射到一个值。如果你使用过Hashtable,那么你已经熟悉了Map的基本使用。更多请参考The Map Interface

最后两种核心集合接口仅仅是Set和Map的排序版本:

  • SortedSet:元素按照升序排列的Set。SortedSet提供了几个额外的操作来利用排序特性。SortedSet常被用来出力自然排序集合,例如单词列表和会员名册。更多请参考The SortedSet Interface
  • SortedMap:键按照升序排列的Map。SoretedMap常被用作自然排序的key/value对,例如字典和电话簿。更多请参考The SoretedMap Interface

想了解排序接口如何排序元素,请参考The Object Ordering

15
3
分享到:
评论

相关推荐

    Java中的集合框架Markdown全系列笔记

    能学到什么:在学习Java的朋友,可以从本文教程中学习到Java中最常用的集合框架,HashMap,ArrayList,HashSet等,同时又基于代码有一定层次的原理解释,让大家知其然,知其所以然,而又不会有太高的学习门槛。...

    Java基础教程完整版

    本章节主要讲解Java集合框架的上半部分,包括集合框架的概述、Collection接口、List接口、Set接口、Map接口等。 Java学习系列(八):Java面向对象之集合框架详解(下) 本章节主要讲解Java集合框架的下半部分,...

    Java基础编程贯通教程 ISBN:7302072701 (史斌星,史佳著)

    5. **数组与集合**:介绍数组的使用,以及ArrayList、LinkedList、HashSet、HashMap等集合框架的使用方法和选择原则。 6. **异常处理**:讲解Java异常处理机制,包括try-catch-finally语句块,自定义异常,以及如何...

    java集合框架

    在Java集合框架中,Set接口代表了不包含重复元素的集合,比如HashSet。与ArrayList不同,Set不维护元素的特定顺序。HashSet的内部实现通常基于哈希表,因此它的添加、删除和查找操作通常具有O(1)的平均时间复杂度。...

    11.集合框架001-Collection接口13-16

    它是Java集合框架的顶级接口,位于`java.util`包下。所有的集合类,无论是List、Set还是Queue,都直接或间接地继承自Collection接口。Collection接口定义了基本的集合操作,如添加元素(add),删除元素(remove),检查...

    挑战java程序员系列教程

    4. 集合框架:Java集合框架提供了数据结构和算法的实现,如ArrayList、LinkedList、HashMap等。学习这部分能帮助你更高效地存储和操作数据。 5. 输入/输出(I/O)流:Java的I/O流系统用于读写文件、网络通信等。教程...

    2020老杜最新Java零基础进阶视频教程-集合课件

    在本Java视频教程中,讲师将深入讲解Java集合框架,包括基础概念、接口、类以及它们之间的关系。 首先,主要集合概述涵盖了三种基本类型:List、Set和Map。List是一个有序集合,允许元素重复,例如ArrayList和...

    514.512.JAVA基础教程_枚举类与注解-集合框架涉及到的API(514).rar

    本教程将深入探讨两个核心概念:枚举类(Enum)和注解(Annotation),并结合Java集合框架中的API进行讲解。以下是这些主题的详细说明。 首先,让我们了解一下枚举类。在Java中,枚举是一种特殊的类,它定义了一组...

    Java 实例 - 集合输出源代码+详细指导教程.zip

    本教程的"Java实例 - 集合输出源代码+详细指导教程.zip"旨在帮助开发者深入理解Java集合框架,并通过实例源代码进行实践学习。 集合框架包括接口、类和算法,主要由以下部分组成: 1. **接口**:这些是集合的抽象...

    JavaOOP深入集合框架上PPT教案学习.pptx

    集合(Collection)是Java集合框架的基础,它是一个容器,可以存储多个对象。集合具有添加、删除元素以及访问和更新元素的能力。集合的体系结构由多种接口和实现类组成,它们之间有层次关系,使得程序员可以根据具体...

    Java 核心系列教程.zip

    11. **Java集合框架的高级主题**:如并发容器(ConcurrentHashMap、CopyOnWriteArrayList等)、Lambda表达式和Stream API,这些都是Java 8及以后版本引入的新特性,提高了代码的简洁性和可读性。 12. **Java虚拟机...

    目前站内最完整的Java开源框架源码教程

    1. **Java基础知识**:在深入研究开源框架之前,首先需要扎实的Java基础,包括语法、面向对象编程概念、异常处理、集合框架、多线程和IO流等。这些是理解任何Java框架的基础。 2. **MVC架构模式**:许多Java框架如...

    java大学简明教程

    6. **集合框架**:Java集合框架包括接口(如List、Set、Map)和实现类(如ArrayList、HashSet、HashMap),它们为存储和操作对象提供了便利。了解这些接口和类的用法,以及它们之间的关系,是进行复杂数据管理的关键...

    这是一个成为更好的Java程序员的系列教程.zip

    4. **集合框架**:Java集合框架包括接口(如List、Set和Map)和实现(如ArrayList、HashSet和HashMap)。了解这些接口和实现的用法,以及它们之间的区别,是提高编程效率的关键。 5. **IO流**:Java的IO流系统用于...

    javaJava程序设计教程与实验电子教案

    5. **集合框架**:详细介绍Java集合框架,包括ArrayList、LinkedList、HashSet、HashMap等常用集合类的使用,以及它们之间的区别和应用场景。 6. **输入/输出流**:阐述I/O流的概念,讲解FileInputStream、...

Global site tag (gtag.js) - Google Analytics