java.lang/java.util
この前、Groovy の GDK でグループを含む正規表現を試してみました。waman.hatenablog.com 今回は根本に還って、Java の正規表現 API (java.util.regex) の使い方をザッと試してみます。 試した内容は Pattern, Matcher クラスに定義されているメソッドの基…
なんとなく今まで正規表現を回避してたんだけど、定型文字列を String のメソッドだけで解析するの面倒すぎるので、Groovy パワーであれこれ試してみました。 Groovy 使うと、グループを使った正規表現でマッチしたグループの内容を List の要素アクセスのよ…
以前の記事『Stream インターフェースの親として BaseStream というのがあるようで・・・』で java.util.stream.Stream インターフェースの親タイプとして BaseStream というのがあるようだが公開されてないか削除された、ということを書きましたが、java8-e…
Java の Collectors クラスに定義されているメソッドを見ていくシリーズ(目次)。 前回、簡単な独自コレクタを作ってみましたが、作ったコレクタをあちこちで使い回したりしないなら、ラムダ式と Stream インターフェースに定義されているメソッドで事足り…
Java の Collectors クラスに定義されているメソッドを見ていくシリーズ(目次)。 前回 parallel ストリームと concurrent コレクタに関してあれこれ試したワリにはにいまいちしっくり来てない状態なのですが、今回は独自コレクタを作ってみます。あまりキ…
Java の Collectors クラスに定義されているメソッドを見ていくシリーズ(目次)。 Stream や Collector に関する記事をそこそこ書いてきて今さらいうのもアレですが、parallel ストリームと concurrent コレクタに関してちょっと(というか根本的に?)勘違…
Java の Collectors クラスに定義されているメソッドを見ていくシリーズ(目次)。 前回までで java.util.stream.Collectors クラスで取得できる Collector オブジェクトの使い方を見ました。 そこでは基本的な使い方を見ていたので Collector インターフェ…
Java の Collectors クラスに定義されているメソッドを見ていくシリーズ(目次)。 前回に引き続き、今回は Map を返す Collector を見ていきます。 前回にも増して引数の型パラメータを見てるとクラクラするぅ。 まぁ、前回同様、返り値の Collector の第2…
今回から何回かに分けて java.util.stream パッケージに定義されている Collectors クラスに定義されているメソッドを見ていきます。目次 Map 以外を返す Collector Map を返す Collector 内蔵コレクタの特性 parallel ストリーム と concurrent コレクタ 独…
Java の Stream インターフェースに定義されているメソッドを見ていくシリーズ(目次)。 前回までで Stream インターフェースに定義されているメソッドは大体見たので、今回はプリミティブ型のストリーム(以下、プリミティブ型ストリーム)を見ていきます…
Java の Stream インターフェースに定義されているメソッドを見ていくシリーズ(目次)。 今回は Stream インターフェースに定義されている static メソッドを見ていきます。 というか、Java 8 からインターフェースに static メソッドが定義できるようにな…
Java の Stream インターフェースに定義されているメソッドを見ていくシリーズ(目次)。 今回は Stream インターフェースに定義されている stateful intermediate operator に対応するメソッドを見ていきます。 stateful intermediate oprerator は「状態保…
Java の Stream インターフェースに定義されているメソッドを見ていくシリーズ(目次)。 今回は前回に引き続き intermediate operator (中間演算子)を見ていきます。 今回扱うのはストリームの要素はそのままで、その種類を変更する中間演算子です。 スト…
Java 8 ea-b90 の話ですが、java.util.stream.Stream インターフェースのスーパーインターフェースとして、java.util.stream.BaseStream というインターフェースがあるようです。 java.util.stream の package private なインターフェースなので直接参照する…
Java の Stream インターフェースに定義されているメソッドを見ていくシリーズ(目次)。 今回からは java.util.stream.Stream インターフェースに定義されている intermediate operators を見ていきます。 「intermediate operator」は訳すと「中間演算子」…
Java の Stream インターフェースに定義されているメソッドを見ていくシリーズ(目次)。 今回は Stream インターフェースに定義されている short-circuiting terminal operator に分類されるメソッドを見ていきます。 terminal operator は前回まで扱ってい…
最近 Java 8 Project Lambda をちょっとイジってるんですが、そこでコンパイラに怒られた話(Java 8 ea-b90)。 本質的には Java 8 がどうこうというより Generics の話かと思いますが。以前の記事で java.util.stream.Stream インターフェースに定義されて…
Java の Stream インターフェースに定義されているメソッドを見ていくシリーズ(目次)。 今回は java.util.stream.Stream インターフェースに定義されている terminal operator (終端演算子) の残りを見ていきます。 どれも Stream の要素を集めた「コン…
OpenJDK にて JDK 8 の Feature Complete がリリースされたので、暇を見つけて Java 8 の新機能をあれこれイジっていこうかなと。 使用する JDK のバージョンは 8-ea-b90 です。ってことで、まずは java.util.stream.Stream インターフェースに定義されてい…
拙者、あんまり正式リリースされてない API って扱わない保守的な人間なんですが、ふと Java8 で導入されるラムダ式ってのがどんな感じになるのか気になったのでドキュメントを探してみました。 ラムダ式に対応したドキュメントや JavaDoc は普通の「JDK〓 8…
前回は ExecutorService を使ったタスクの依頼・実行方法を見ました。 今回は ExecutorService のシャットダウン・終了方法を見ていきます。 ExecutorService を使うプログラムでは必ずシャットダウンを行う必要があるので忘れずに。記事内容 ExecutorServic…
最近『Java並行処理プログラミング ―その「基盤」と「最新API」を究める―』で Java の並行処理プログラミングを勉強中なんですが、ExecutorService の使い方あたりで完全に消化不良に陥ってしまったので、知識の整理を敢行。 今回は ExecutorService を使っ…
『増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編』に載っているデザインパターンを Groovy/GPars で書こうシリーズ、今回は Guarded Suspension パターン。 Guarded Wait, Spin Lock などとも呼ばれるそうです。このパターンは java.util…
前回 Java 7 を使う環境設定を行ったので、ついでにちょっと Java 7 をいじってみます*1。 今回見ていくのは java.util.concurrent パッケージに追加された Fork/Join フレームワークです。 Fork/Join は大量の計算を小さい部分に分けてマルチスレッドで計算…
以前から Java のロギング API、java.util.logging で不思議に思ってた挙動。確認 普通に使う分にはこんな感じにします(コードは Groovy): import java.util.logging.* def log = Logger.getLogger('logging') log.warning('warning') log.info('info') l…
Java の Class クラスに定義されているメソッドを見ていくシリーズ(目次)。 今回は Class クラスに定義されているメソッドのうち、特定の型に特有のメソッドを見ていきます。 特定の型に特有のメソッドとは、例えば「配列に対して要素の型を返すメソッド」…
Java の Class クラスに定義されているメソッドを見ていくシリーズ(目次)。 今回でとりあえず Class クラスのメソッドはコンプリート!(Java 6) 最後に残ってるのはよくわからんのバッカリなので流します。クラスローダ ClassLoaderまずはクラスのクラスロ…
Java の Class クラスに定義されているメソッドを見ていくシリーズ(目次)。 今回はメンバへのアクセスを行うメソッド。 ここで、メンバとして扱うのは フィールド コンストラクタ メソッド 内部クラス の4つです。メンバへのアクセス一般各メンバを見てい…
Java の Class クラスに定義されているメソッドを見ていくシリーズ(目次)。 今回はクラス階層とインスタンスに関連するメソッドを見ていきます。クラス階層 Class Hierarchyまずはクラス階層に関連するメソッド。 これらは返り値もしくは引数に Class オブ…
Java の Class クラスに定義されているメソッドを見ていくシリーズ(目次)。 今回は Class クラスに定義されているメソッドのうち、クラスの宣言に関するメソッドを見ていきます。クラス宣言に関するメソッドクラス宣言に関するメソッド*1は、ここでは以下…