集合--接口(Interface)
2016-07-17 23:14
302 查看
核心集合接口封装不同类型的集合,如下图所示。这些接口允许它们代表的细节的集合被独立操作。核心集合接口是java集合框架的基础,正如你下图看到的,核心集合接口组成了一个层次结构。
核心集合接口
Set是Collection的一种类型,SortedSet是Set的一种类型,如此类推。注意,这层次结构中包含两个独立树,Map不属于Collection。
注意,所有的核心接口都是泛型。例如,Collection接口的声明如下:
语法<E> 表示这个接口是泛型,当你声明一个Collection实例,你可以并应该指定这个集合中包含的对象的类型。指定类型会让编译器在编译时候校验你放进去对象类型是否正确,这样减少了运行时错误,查阅更多泛型信息,请查看Generics(Updated)
当你了解怎么使用这些接口,那么你将会知道该知道java集合框架该的大部分内容。这章概要讨论这些接口的有效使用,包括什么时候使用。同样,你将学习每个接口的编程方式来帮助你获取大部分的框架信息。
保持对接口接口数量的管理,java平台不会将接口独立分开,相反,每个接口的操作被设计成可选的,一个给定的实现可能不支持所有的操作。如果不支持的操作被调用,这个集合将会抛出一个UnsupportedOperationException异常。实现类负责记录他们支持的操作。所有java平台的普通实现支持所有的可选操作。
以下列出核心集合接口:
集合Collection — 集合层次结构的根,一个集合是它的元素对象的一个组合。Collection接口是所有集合实现的最小公共部分并且被用于互相转换和管理它们,当大s部分被要求时。java平台不提供Collection的直接实现类,但是提供子接口的实现类,如Set和List。
集合Set — 不能包含重复元素的一种集合,这个接口模仿数学中的抽象集合并被拥有代表集合,如扑克牌卡牌集,学生课程集合或者机器上运行的程序。
集合List — 一种有序集合(有时称为序列)。Lists可以包含重复元素,使用List用户可以精确控制每个元素在哪里插入并通过索引访问它们。如果你使用过Vector,和List的用法是一样的。
队列Queue — 它被拥有存放被先后处理的多个元素。除了基本的Collection操作方法,队列还提供另外的插入,取出和检查的方法。
队列通常先进先出的顺序方式操作元素,但不是必须的。优先队列除外,它根据提供的比较级别或者元素自然属性来排序。不管哪种方式被使用,队列的头部都是调用remove或者poll方法要操作的元素。在先进先出队列中,新的元素被添加到队列的尾部,其它种类的队列可能使用不同的存放规则。每个队列的实现必须指定它的排序属性。
双端队列(Deque)— 一种按照优先顺序处理存放多个元素的集合。除了Collection集合基本的操作外,双端队列提供另外的插入,取出和检验操作方法。
双端队列可以被用于先进先出和后进先出。在一个双端队列中,所有新元素可以在两端被插入,获取和删除。
键值对(Map)— 一个键和值映射的对象。不能包含重复的键,每个键最多可以映射一个值。如果你使用HashTable,你已经熟悉map的基本信息。
核心集合接口最后两种排序接口Set和Map:
SortedSet — 按照升序的顺序保存它的元素,一些额外的方法被提供来充分利用排序。已排序集合被用于自然属性排序集,如单词列表和会员名单。
SortedMap — 按照键升序顺序来保存它的键值对。它模拟SortedSet,排序map被用于键值对集合的自然排序,如字典和电话目录。
核心集合接口
Set是Collection的一种类型,SortedSet是Set的一种类型,如此类推。注意,这层次结构中包含两个独立树,Map不属于Collection。
注意,所有的核心接口都是泛型。例如,Collection接口的声明如下:
public interface Collection<E>
语法<E> 表示这个接口是泛型,当你声明一个Collection实例,你可以并应该指定这个集合中包含的对象的类型。指定类型会让编译器在编译时候校验你放进去对象类型是否正确,这样减少了运行时错误,查阅更多泛型信息,请查看Generics(Updated)
当你了解怎么使用这些接口,那么你将会知道该知道java集合框架该的大部分内容。这章概要讨论这些接口的有效使用,包括什么时候使用。同样,你将学习每个接口的编程方式来帮助你获取大部分的框架信息。
保持对接口接口数量的管理,java平台不会将接口独立分开,相反,每个接口的操作被设计成可选的,一个给定的实现可能不支持所有的操作。如果不支持的操作被调用,这个集合将会抛出一个UnsupportedOperationException异常。实现类负责记录他们支持的操作。所有java平台的普通实现支持所有的可选操作。
以下列出核心集合接口:
集合Collection — 集合层次结构的根,一个集合是它的元素对象的一个组合。Collection接口是所有集合实现的最小公共部分并且被用于互相转换和管理它们,当大s部分被要求时。java平台不提供Collection的直接实现类,但是提供子接口的实现类,如Set和List。
集合Set — 不能包含重复元素的一种集合,这个接口模仿数学中的抽象集合并被拥有代表集合,如扑克牌卡牌集,学生课程集合或者机器上运行的程序。
集合List — 一种有序集合(有时称为序列)。Lists可以包含重复元素,使用List用户可以精确控制每个元素在哪里插入并通过索引访问它们。如果你使用过Vector,和List的用法是一样的。
队列Queue — 它被拥有存放被先后处理的多个元素。除了基本的Collection操作方法,队列还提供另外的插入,取出和检查的方法。
队列通常先进先出的顺序方式操作元素,但不是必须的。优先队列除外,它根据提供的比较级别或者元素自然属性来排序。不管哪种方式被使用,队列的头部都是调用remove或者poll方法要操作的元素。在先进先出队列中,新的元素被添加到队列的尾部,其它种类的队列可能使用不同的存放规则。每个队列的实现必须指定它的排序属性。
双端队列(Deque)— 一种按照优先顺序处理存放多个元素的集合。除了Collection集合基本的操作外,双端队列提供另外的插入,取出和检验操作方法。
双端队列可以被用于先进先出和后进先出。在一个双端队列中,所有新元素可以在两端被插入,获取和删除。
键值对(Map)— 一个键和值映射的对象。不能包含重复的键,每个键最多可以映射一个值。如果你使用HashTable,你已经熟悉map的基本信息。
核心集合接口最后两种排序接口Set和Map:
SortedSet — 按照升序的顺序保存它的元素,一些额外的方法被提供来充分利用排序。已排序集合被用于自然属性排序集,如单词列表和会员名单。
SortedMap — 按照键升序顺序来保存它的键值对。它模拟SortedSet,排序map被用于键值对集合的自然排序,如字典和电话目录。
相关文章推荐
- Ruby中的集合编写指南
- set 命令特殊用法
- AVG 7.5.1.43 版本 序列号 集合
- SQL Server游标的使用/关闭/释放/优化小结
- 编写高质量代码改善C#程序――使用泛型集合代替非泛型集合(建议20)
- You must SET PASSWORD before executing this statement的解决方法
- C#中list用法实例
- 批处理 Set 命令详解 让你理解set命令第1/2页
- C#中Ilist与list的区别小结
- C#中IList<T>与List<T>的区别深入解析
- C#检查指定对象是否存在于ArrayList集合中的方法
- C#对list列表进行随机排序的方法
- ASP中set与dim的区别(自己的理解)
- 深入C#中get与set的详解
- Rails Routes中new、collection、member的区别浅析
- sql Set IDENTITY_INSERT的用法
- Vc++ 控件List Control用法总结
- C++实现的泛型List类分享
- set_include_path在win和linux下的区别
- C#写入对象或集合类型数据到xml文件的方法