您还将学习如何使用基础 C++++ Streams 运算符访问集合。
本文介绍目前可供 InfoSphere Streams 2.0 ">开发人员使用的 3 种集合类型。集和映射复合类型不仅可用于 Streams 2.0 版,还为基础和复合类型的嵌套增添了灵活性。本文将同时使用 Streams 处理语言和 C++ 的一些示例展示新类型的强大功能。
前提条件
本文是为拥有 Streams 编程语言技能和 C++ 技能的 Streams 组件开发人员和应用程序编程人员编写的。您可以将本文用作参考,或者可以检查并运行其中的示例来演示所介绍的技术。要执行示例,您应该对 Streams 编程有一般的了解。
运行这些示例需要一台运行 Red Hat Enterprise Linux® 且安装了 InfoSphere Streams V2.0 或更新版本的计算机。
理解集合
Streams 处理语言 (SPL) 既支持基础类型(int 和 string 等),又支持可用于在表示 SPL 应用程序中的流数据的复合类型(集和映射)。一组复合类型(称为集合)可用于表示流数据的复杂排列,支持使用内置的 SPL 函数访问和操作集合内容。
在早期的 InfoSphere Streams 版本中,SPADE 语言支持一组受限制的复合类型,包括矩阵和列表,这些类型可用于管理基础类型分组。Streams 2.0 放弃了矩阵类型。支持的集合列表现在包含:
集(2.0 版中新增) 映射(2.0 版中新增) 列表
集合已进一步扩展,可用它来表示复合类型的复杂嵌套,包括列表的列表,这为集合所管理的数据增添了更高的灵活性。
图 1. Streams 基础和复合类型
受限类型和无限制类型
对于字符串等基础类型,SPL 还实现了具有有限长度的集合类型。任何有限长度集合的大小需要使用一个编译时常量来定义。也可以声明包含无限类型的有限集合,比如一个有限的 rstring 列表。从开发人员的角度讲,有限和无限类型之间的区别很小。但是,在使用有限类型时存在一些编译时优化优势。
请注意,无论受限制还是无限制,SQL 都会将任何集合限制于最多 231-1 个元素。
以下各节将更详细地介绍复合类型。
理解列表集合