加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

分析C#、JavaScript和Java的集合数据处理

发布时间:2021-06-02 23:05:39 所属栏目:教程 来源:互联网
导读:C# 的集合数据基类是 CollectionT,它实现了 ICollectionT接口,而 ICollectionT 又从 IEnumerableT 接口继承实际上要讨论的内容都基于 IEnumerableT 接口。另外还有一个非泛型的 IEnumerable 接口,不过建议大家尽量使用泛型,所以这个非泛型的接口就当我

C# 的集合数据基类是 Collection<T>,它实现了 ICollection<T>接口,而 ICollection<T> 又从 IEnumerable<T> 接口继承——实际上要讨论的内容都基于 IEnumerable<T> 接口。另外还有一个非泛型的 IEnumerable 接口,不过建议大家尽量使用泛型,所以这个非泛型的接口就当我没说。顺便提一句,数组也是实现了 IEnumerable<T> 接口的。System.Linq 中提供的扩展大大方便了集合处理过程。

JavaScript 最常见的集合数据类型就是数组,自 ES6 发布以后,这个范围扩展到了 iterable 对象。不过这里要讨论的内容都是在Array.prototype 中实现的。除此之外,underscore、lodash 这些第三方库中也实现了很多集合数据处理的方法,但不在本文讨论内容之内。

Java 的集合类型由 Collection<E> 接口定义。本文讨论的内容是 Java 8 的特性,在 java.util.stream 包中实现,由Collection<E>.stream() 引入。

示例语言版本

后面示例中的部分 C# 语句可能需要支持 6.0 语言版本的编译器,如 Visual Studio 2015 或者 Visual Studio "15"

JavaScript 代码都使用了 ES6 语法,目前大部分浏览器支持,Node 5 也完全支持。

Java 要求 Java 8(或 1.8)版本

遍历

问题提出

给定一个名称列表,数组类型, ["Andy", "Jackson", "Yoo"],要求遍历出到的控制台。

C# 的遍历

对于集合来说,最常用的就是遍历,不过 for,foreach, while 之类大家都耳熟能详了,不再多说。这里说的是 forEach() 方法。

很遗憾,C# 的 Linq 扩展 里没有提供 ForEach() 方法,不过 All(IEnumerable<T>, Func<T, Boolean>) 和 Any(IEnumerable<T>, Func<T, Boolean>) 都可以代替。这两个方法的区别就在于第二个参数 Func<T, Boolean> 的返回值。这两个方法都会遍历集合,对集合中的每个元素依次调用第二个参数,Func<T, Boolean> 所指的委托方法,并检查其返回值,All() 检查到 false 中止遍历,而Any() 检查到 true 中止遍历。

All() 的意思是,所有元素都符合条件则返回 true,所有只要有一个不符合条件,返回了 false,则中止遍历,返回false;Any() 的意思是只要发现有元素符合条件则返回 true。

Func<T, Boolean> 是一个公用委托。Func<...> 系列公用委托都用于委托带有返回值的的方法,所有 Func<..., TResult>都是***一个参数 TResult 代表返回值类型。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读