java.util は様々な場面で利用できるユーティリティを提供するパッケージである。
Setインタフェースは重複要素のないコレクションである。
java.utilパッケージには次に示すクラスがある。
| クラス | 説明 |
|---|---|
| ArrayList<E> | サイズ変更可能な配列 |
| Properties | プロパティの永続セット |
| Random | 一連の擬似乱数を生成する |
java.utilパッケージは、様々なユーティリティクラスを提供します。
java.util.ArrayList<E>のコンストラクタは初期サイズとして、要素を10個格納できるArrayListを作成する。Eにはクラス名を指定する。EにはJava変数の基本型を指定することはできない。基本型のArrayListを作成したい場合は、Java変数の基本型に対応したラッパークラスを指定する。
| 基本型 | クラス |
|---|---|
| boolean | java.lang.Boolean |
| byte | java.lang.Byte |
| char | java.lang.Character |
| short | java.lang.Short |
| int | java.lang.Integer |
| long | java.lang.Long |
| float | java.lang.Float |
| double | java.lang.Double |
ArrayList<Integer> intArray = new ArrayList<Integer>();
ArrayList<String> strArray = new ArrayList<String>();
ArrayListに値を格納するにはaddメソッドを使用する。
public boolean add(E o)
指定した要素をリストの最後に追加する。
プロパティファイルとは、様々な設定値を格納したテキストファイルのことです。テキストファイルの中身は「プロパティ=値」の形式で記述します。例として、プロパティファイル sample.properties の中身を次に示します。
host=localhost
port=9199
user=scott
password=tiger
プロパティを表すクラスとしてPropertiesクラスがあります。loadメソッドを用いてプロパティファイルを読み込みます。必要なプロパティの値はgetPropertyメソッドで取得することができます。
Properties p = new Properties();
FileInputStream fis = new FileInputStream("sample.properties");
p.load(fis);
String host = p.getProperty("host");
プロパティファイルを配置するディレクトリは、Javaのクラスパスに設定しなければなりません。
乱数を生成するには、Random クラスのインスタンスを生成して、各種メソッドを呼び出します。
乱数を生成するメソッドは、生成する数の型によっていろいろ用意されています。
int 型の乱数を生成するには、Random.nextInt() メソッドを使用します。
int nextInt(int n)
0以上 n 未満の乱数を戻します。生成される数は整数です。
double 型の乱数を生成するには、Random.nextDouble() メソッドを使用します。
double nextDouble()
0以上1.0未満の乱数を戻します。生成される数は実数です。
boolean 型の乱数を生成するには、Random.nextBoolean() メソッドを使用します。
boolean nextBoolean()
true または false をランダムに戻します。
0から99までの乱数を生成するJavaソースコードの例を次に示します。
Random random = new Random();
int n = random.nextInt(100);
java.util.Random クラス以外にも、java.lang.Math クラスの random() メソッドを使用して乱数を生成することができます。こちらは static なスレッドのため、クラスをインスタンス化する必要はありません。
| 定数 | 説明 |
|---|---|
| DAYS | 日 |
| HOURS | 時 |
| MINUTES | 分 |
| SECONDS | 秒 |
| MILLISECONDS | ミリ秒 |
| MICROSECONDS | マイクロ秒 |
| MANOSECONDS | ナノ秒 |