JavaにおけるdeepToString()メソッドとasList()メソッドの重要性とは?
配列(Array)とは、単一の型の値を固定個数だけ連続したメモリ領域に格納するオブジェクトです。deepToString()メソッドとasList()メソッドは、どちらもjava.util.Arraysクラスに属する静的(static)メソッドとして提供されています。
deepToString()メソッドは多次元配列を文字列に変換するためのメソッドです。配列の各要素がさらに配列であるかどうかを再帰的にチェックし、ネストされた配列もすべて文字列形式に変換してくれます。一方、asList()メソッドは固定サイズのリストを作成します。つまり、Arrays.asList()が返すリストに対しては、add()メソッドで要素を追加することができません。asList()メソッドは配列とリストをつなぐ「橋渡し」の役割を果たしており、返されるリストはサイズの拡張こそできませんが、リストが持つその他のメソッドはすべて利用可能です。
Arrays.deepToString()の構文
public static String deepToString(Object[] a)
deepToString()の使用例
import java.util.Arrays;
public class DeepToStringTest {
public static void main(String[] args) {
int[][] array = new int[][] {{1, 2, 3}, {11, 12, 13}, {21, 22, 23}};
System.out.println(Arrays.deepToString(array));
}
}出力結果
[[1, 2, 3], [11, 12, 13], [21, 22, 23]]
通常のtoString()メソッドで配列を出力するとハッシュコードが表示されるだけで中身を確認できませんが、deepToString()を使えば多次元配列の中身を一目で把握できる文字列として出力できます。デバッグ時やログ出力時に特に便利なメソッドです。
Arrays.asList()の構文
public static <T> List<T> asList(T... a)
asList()の使用例
import java.util.Arrays;
public class AsListTest {
public static void main(String[] args) {
String[] strArray = {"Welcome", "to", "TutorialsPoint"};
System.out.println(Arrays.asList(strArray));
}
}出力結果
[Welcome, to, TutorialsPoint]
asList()メソッドは、既存の配列をそのままリストとして扱いたい場面で活躍します。ただし、返されるリストは固定サイズである点に注意が必要です。add()やremove()といったサイズを変更する操作を行うとUnsupportedOperationExceptionがスローされますが、set()メソッドによる要素の置き換えのようにサイズを変更しない操作であれば問題なく実行できます。
-
JavaのThrowableクラスとは?重要なメソッドとその使い方を実例付きで解説
Throwableクラスは、Javaにおけるすべてのエラーおよび例外のスーパークラス(親クラス)です。このクラスのインスタンスであるオブジェクトは、JVM(Java Virtual Machine)によって自動的にスローされるか、あるいはthrowステートメントによってプログラマが明示的にスローすることができます。また、catch節の引数型としても、このクラスまたはそのサブクラスを指定できます。 ThrowableにはErrorとExceptionという2つの主要なサブクラスがあり、これらのインスタンスは例外的な状況が発生したことを示すために使用されます。インスタンスは例外が発生したコンテキス
-
Javaと.NETの違いを徹底比較!言語・プラットフォーム・ランタイムの違いをわかりやすく解説
Javaは、Sun Microsystems(現Oracle)が開発し、1995年にリリースされた高水準プログラミング言語です。Windows、Mac OS、各種UNIXなど、さまざまなプラットフォーム上で動作できる点が大きな特徴です。 一方、.NETフレームワークはMicrosoftが開発したソフトウェアフレームワークで、Microsoft Windows OS上で動作します。ユーザーインターフェース、データアクセス、データベース接続、暗号化、Webアプリケーション開発など、幅広い機能を提供します。 対応言語の違い Javaでは基本的にJava言語のみを使用します。 .NETはVB.NET、