Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9703

JavaのanyMatchって、C#でいうAnyだっけ?つまり、JavaScriptのsomeだよね?もう対応表つくるわ!

$
0
0

これは、 Java Advent Calendar 2019の12日目の記事です。

JavaのanyMatchって、C#でいうAnyだっけ?つまり、JavaScriptのsomeだよね?

ここ数年、Java、JavaScript、C#をよく扱います。(といいつつ最近は、Pythonの記事を投稿しまくってるわけですがw)

どの言語にも、関数型プログラミング的APIがあるんですけど、

  • Javaの reduceってC#だと何だっけ?
  • JavaScriptの someってJavaだと anyだったはずanyMatchの間違い)

みたいなことが最近増えたので、対応表を作ってみることにしました。

対応表

本当はもっといっぱいAPIがあると思いますが、とりあえず私がよく使うやつを並べます。

Javaなら Stream API、C#なら LINQ to Objectsなんて呼ぶことの方が多いとは思いますが、今回はclass名(≒interface名≒object名)に表記を統一いたします。

そのため、以下のようになります。

  • Java : Stream
  • JavaScript : Array
  • C# : Enumerable

リストを変換する系

リスト(≒ストリーム)を入力すると、リストが返却されるやつらです。

機能Java StreamJavaScript ArrayC# Enumerable
要素数を変えずに変換する(写像・射影)mapmapSelect
条件にあうものを抽出するfilterfilterWhere
平坦にするflatMapflatSelectMany
重複をなくすdistinct:x:Distinct

並べ替える系

リスト(≒ストリーム)を並べ替えるやつです。

機能Java StreamJavaScript ArrayC# Enumerable
並べ替えるsortedsortOrderBy
反転する:x:reverseReverse

Booleanを返却する系

Booleanを返却するやつです。命名がバラバラでいつも混ざります。

機能Java StreamJavaScript ArrayC# Enumerable
すべての要素が条件に合うかどうかallMatcheveryAll
どれかの要素が条件に合うかどうかanyMatchsomeAny

集計する系

集計できるやつらです。JavaScriptは :x:が多いですね。

機能Java StreamJavaScript ArrayC# Enumerable
畳み込むreducereduceAggregate
要素数を数えるcount:x:Count
最大値を求めるmax:x:Max
最小値を求めるmin:x:Min

さいごに

JavaとJavaScriptは、命名が似ている気がしますね!

C#の命名はSQLを意識しているんだろうなぁと思います。

本記事作成にあたり、以下の記事を参考にさせていただきました。ありがとうございました。

これは、 Java Advent Calendar 2019の12日目の記事でした。


Viewing all articles
Browse latest Browse all 9703

Trending Articles