連載
» 2006年09月13日 10時00分 公開

JavaTips 〜Javaプログラミング編:HIGH-VALUE(絶対的な最大値)を表現するには

[平野正喜,@IT]

 Java以外の言語で書かれたプログラムをJavaに移植するとき、Javaの言語体系に含まれていない表現にぶつかることがあります。また、フローチャートや(基本情報試験などで用いられている)疑似言語で表現されたプログラムを、Javaプログラム化したい場合も同様です。その1つが「絶対的な最大値」を表す「HIGH-VALUE」です。

 「HIGH-VALUE」は「型や長さを問わずにほかのどの値と比較しても大きいと判断される値」で、ファイルの併合のようなトランザクション処理などで用いられます。

絶対的な最大値を現す定数
byte Byte.MAX_VALUE
short Short.MAX_VALUE
int Iterger.MAX_VALUE
long Long.MAX_VALUE
float Float.MAX_VALUE(正の最大有限値)/Float.PSITIVE_INFINITY(正の無限大)
double Double.MAX_VALUE(正の最大有限値)/Double.POSITIVE_INFINITY(正の無限大)
char Character.MAX_VALUE
Javaが提供している「絶対的な最大値を表す定数」

 上の表に示したとおり、Javaでは基本型ごとに「絶対的な最大値を表す定数」を提供しています。ですから、基本型に当てはまる変数であれば、これらを「HIGH-VALUE」の代わりに使用できます。

 しかし、実際には「HIGH-VALUE」が用いられる対象は文字列の場合がほとんどです。残念ながら、Javaにおいて固定文字列を表現するStringクラスには、絶対的な最大値を表す定数は定義されていませんので、自前で定義することになります。また、このとき、文字列の長さも定める必要があります。例えば、文字列長が3であれば、下記のように、文字型の定数「Character.MAX_VALUE」を3つつなぐといいでしょう。

char[] c = { Character.MAX_VALUE, Character.MAX_VALUE, Character.MAX_VALUE };
final String HIGHVALUE = new String(c);

 この方法を使って、COBOL言語の作成例や基本情報試験の例題としてよく用いられる「整列済みの2つのファイルのマージ(併合)」をJavaで書くと以下のようになります。

【参考】簡単なマージのプログラム(エラー処理などは省略している) 【参考】簡単なマージのプログラム(エラー処理などは省略している)

Profile

RunDog.org

平野正喜


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。