Aggregate(Count)
聚合(计数)
- 计数操作用于统计原始集合中符合某种条件的成员的个数,结果值为整数。
计数操作在各语言中的实现方式如下表所示:
Count SQL(SELECT) COUNT函数 C#(LINQ) Count扩展方法 F#(List) 由List.filter和List.Length函数联合实现 C++(STL) count, count_if等算法函数 Haskell(Prelude) 由filter和length函数联合实现 Java8(stream) 由filter和count方法联合实现
以下示例代码功能为:统计整形集合numbers中奇数成员的个数。 - SQL(SELECT)
- C#(LINQ)
- F#(List)
- STL(C++)
- Haskell(Prelude)
- Java8(stream)
Aggregate(Sum)
聚合(求和)
- 求和操作用于计算原始集合中各成员的总和,结果类型与原始集合成员类型相同。
求和操作在各语言中的实现方式如下表所示:
Sum SQL(SELECT) SUM函数 C#(LINQ) Sum扩展方法 F#(List) List.sum, List.sumBy等函数 C++(STL) accumulate算法函数 Haskell(Prelude) sum函数 Java8(stream) sum方法
以下示例代码功能为:计算整形集合numbers中各成员的总和。 - SQL(SELECT)
- C#(LINQ)
- F#(List)
- STL(C++)
- Haskell(Prelude)
- Java8(stream)
Aggregate(Min)
聚合(求最小值)
- 求最小值操作用于找出原始集合中最小的成员,结果类型与原始集合成员类型相同。
求最小值操作在各语言中的实现方式如下表所示:
Min SQL(SELECT) MIN函数 C#(LINQ) Min扩展方法 F#(List) List.min, List.minBy等函数 C++(STL) min_element算法函数 Haskell(Prelude) minimum, minimumBy等函数 Java8(stream) min方法
以下示例代码功能为:找出整形集合numbers中最小的成员。 - SQL(SELECT)
- C#(LINQ)
- F#(List)
- STL(C++)
- Haskell(Prelude)
- Java8(stream)
Aggregate(Max)
聚合(求最大值)
- 求最大值操作用于找出原始集合中最大的成员,结果类型与原始集合成员类型相同。
求最大值操作在各语言中的实现方式如下表所示:
Max SQL(SELECT) MAX函数 C#(LINQ) Max扩展方法 F#(List) List.max, List.maxBy等函数 C++(STL) max_element算法函数 Haskell(Prelude) maximum, maximumBy等函数Java8(stream) max方法
以下示例代码功能为:找出整形集合numbers中最大的成员。 - SQL(SELECT)
- C#(LINQ)
- F#(List)
- STL(C++)
- Haskell(Prelude)
- Java8(stream)
Aggregate(Average)
聚合(求平均值)
- 求平均值操作用于计算原始集合中各成员的平均值,结果类型与原始集合成员类型相同。
求平均值操作在各语言中的实现方式如下表所示:
Average SQL(SELECT) AVG函数 C#(LINQ) Average扩展方法 F#(List) List.average, List.averageBy等函数 C++(STL) 无对应算法函数,由accumulate算法函数间接实现 Haskell(Prelude) 由sum和genericLength函数联合实现 Java8(stream) average方法
以下示例代码功能为:计算整形集合numbers中各成员的平均值。 - SQL(SELECT)
- C#(LINQ)
- F#(List)
- STL(C++)
- Haskell(Prelude)
- Java8(stream)
Aggregate(Simple)
简单聚合
- 简单聚合操作。
简单聚合操作在各语言中的实现方式如下表所示:
Aggregate(Simple) SQL(SELECT) 无对应函数 C#(LINQ) Aggregate扩展方法 F#(List) List.reduce, List.reduceBack等函数 C++(STL) accumulate算法函数 Haskell(Prelude) foldl1, foldr1等函数 Java8(stream) reduce方法
以下示例代码功能为:计算双精度浮点数集合doubles中所有成员的积。 - SQL(SELECT)
- C#(LINQ)
- F#(List)
- C++(STL)
- Haskell(Prelude)
- Java8(stream)
Aggregate(Seed)
带种子的聚合
- 带种子的聚合操作。
带种子的聚合操作在各语言中的实现方式如下表所示:
Aggregate(Simple) SQL(SELECT) 无对应函数 C#(LINQ) Aggregate扩展方法 F#(List) List.fold, List.foldBack等函数 C++(STL) accumulate算法函数 Haskell(Prelude) foldl, foldr等函数 Java8(stream) reduce方法
以下示例代码功能为:从账户中扣除提款额(忽略大于存款的提款项目),计算账户余额。 - SQL(SELECT)
- C#(LINQ)
- F#(List)
- C++(STL)
- Haskell(Prelude)
- Java8(stream)