標準ライブラリ
Stringクラス
Stringクラスは、文字列を操作するためのメソッドを提供します。
主要な特徴
文字列は不変であり、一度作成すると変更できません。
新しい文字列を作成すると、実際には新しいStringオブジェクトが生成されます。
主要なメソッド
- length()
説明: 文字列の長さ(文字数)を返します。
例: str.length() - charAt(int index)
説明: 指定されたインデックス位置にある文字を返します。
例: str.charAt(0) - substring(int beginIndex, int endIndex)
説明: 文字列の指定された範囲のサブストリングを返します。
例: str.substring(1, 4) - equals(Object anotherString)
説明: 文字列が指定されたオブジェクトと等しいかどうかを比較します。
例: str.equals("test") - equalsIgnoreCase(String anotherString)
説明: 文字列を大文字と小文字を区別せずに比較します。
例: str.equalsIgnoreCase("TEST") - startsWith(String prefix)
説明: 文字列が指定された接頭辞で始まるかどうかを判断します。
例: str.startsWith("He") - endsWith(String suffix)
説明: 文字列が指定された接尾辞で終わるかどうかを判断します。
例: str.endsWith("ld") - contains(CharSequence s)
説明: 文字列が指定された文字列を含むかどうかを確認します。
例: str.contains("lo") - indexOf(String str)
説明: 指定された文字列が最初に出現するインデックスを返します。
例: str.indexOf("l") - lastIndexOf(String str)
説明: 指定された文字列が最後に出現するインデックスを返します。
例: str.lastIndexOf("l") - toUpperCase()
説明: 文字列のすべての文字を大文字に変換します。
例: str.toUpperCase() - toLowerCase()
説明: 文字列のすべての文字を小文字に変換します。
例: str.toLowerCase() - trim()
説明: 文字列の先頭および末尾の空白を削除します。
例: str.trim() - replace(char oldChar, char newChar)
説明: 文字列内の指定された文字を別の文字で置き換えます。
例: str.replace('e', 'a')
Mathクラス
Mathクラスは、基本的な数学的演算や関数を提供するユーティリティクラスです。
主要なメソッド
- abs()
説明: 引数の絶対値を返します。
例: Math.abs(-4.7) は 4.7 を返します。 - ceil()
説明: 引数の値以上で最小の整数をdouble型で返します。
例: Math.ceil(4.2) は 5.0 を返します。 - floor()
説明: 引数の値以下で最大の整数をdouble型で返します。
例: Math.floor(4.8) は 4.0 を返します。 - round()
説明: 引数を最も近い整数に四捨五入します。
例: Math.round(4.4) は 4 を、Math.round(4.5) は 5 を返します。 - max()
説明: 二つの引数のうち大きい方を返します。
例: Math.max(3, 5) は 5 を返します。 - min()
説明: 二つの引数のうち小さい方を返します。
例: Math.min(3, 5) は 3 を返します。 - sqrt()
説明: 引数の平方根を返します。
例: Math.sqrt(16) は 4.0 を返します。 - pow()
説明: 第一引数を底とし、第二引数を指数とするべき乗の結果を返します。
例: Math.pow(2, 3) は 8.0 を返します。 - random()
説明: 0.0以上1.0未満のランダムなdouble値を返します。
例: Math.random() はランダムな値を返します。 - sin(), cos(), tan()
説明: 引数(ラジアン単位)の正弦(sin)、余弦(cos)、正接(tan)を返します。
例: Math.sin(Math.PI / 2) は 1.0 を返します。 - asin(), acos(), atan()
説明: 引数の逆正弦(asin)、逆余弦(acos)、逆正接(atan)をラジアンで返します。
例: Math.asin(1.0) は Math.PI / 2 を返します。 - toRadians(), toDegrees()
説明: 角度をラジアンに変換する(toRadians)、ラジアンを角度に変換する(toDegrees)。
例: Math.toRadians(180) は Math.PI を、Math.toDegrees(Math.PI) は 180.0 を返します。
コレクションフレームワーク
Listインターフェース
Listインターフェースは順序付けられたコレクションで、ユーザーはリスト内の各要素に特定の位置を割り当てます。これにより、同じ値の要素がリスト内に複数回出現することができます。
主要な特徴とメソッド
要素のインデックスによるアクセスが可能です。
add(), remove(), get(), **set()**などのメソッドが提供されています。
実装クラス
ArrayList: 配列ベースで実装されており、ランダムアクセスに優れています。
LinkedList: リンクリストによる実装で、要素の挿入と削除が効率的です。
Setインターフェース
Setインターフェースはユニークな要素のコレクションで、同じ要素の重複を許しません。
主要な特徴とメソッド
要素の追加、削除、検索が可能ですが、インデックスによるアクセスは提供されていません。
**add(), remove(), contains()**などのメソッドが利用可能です。
実装クラス
HashSet: ハッシュテーブルによる実装で、高速なアクセスを提供します。
LinkedHashSet: HashSetにリンクリストを組み合わせ、挿入順を維持します。
TreeSet: 木に基づく実装で、要素は自然順序付けされます。
Mapインターフェース
Mapインターフェースはキーと値のペアを格納するためのコレクションです。各キーはユニークである必要があり、それぞれのキーには一つの値が関連付けられています。
主要な特徴とメソッド
**put(), get(), remove()**などのメソッドを使用して、キーに基づいて値を操作します。
**keySet(), values(), entrySet()**メソッドでキー、値、またはキーと値のペアのセットを取得できます。
実装クラス
HashMap: ハッシュテーブルに基づく実装で、高速なアクセスが可能です。
LinkedHashMap: HashMapにリンクリストを組み合わせ、挿入順を維持します。
TreeMap: 赤黒木に基づく実装で、キーは自然順序付けされます。
これらのインターフェースとクラスは、様々なデータ構造のニーズに応えるために設計されています。適切なコレクションタイプを
選択することで、プログラムのパフォーマンスや効率を最適化できます。それぞれのコレクションは特定のユースケースに合わせて使い分けることが重要です。
Listの使用例
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
String first = names.get(0); // "Alice" を取得
Setの使用例
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // 重複する要素は追加されない
boolean containsTwo = numbers.contains(2); // true
Mapの使用例
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 25);
ages.put("Bob", 30);
Integer age = ages.get("Alice"); // 25 を取得