を使用します。 T[] toArray (T[] a);"。"/> を使用します。 T[] toArray (T[] a);"。">

ホームページ >Java >&#&ベース >Javaでリストを配列に変換するにはどうすればよいですか?

Javaでリストを配列に変換するにはどうすればよいですか?

青灯夜游
青灯夜游オリジナル
2020-11-02 15:00:33100480ブラウズ

Java でリスト コレクションを配列に変換する方法: 1. パラメーターなしの toArray メソッドを使用します (構文形式は「Object[] toArray();」です)。 2. ジェネリックスをサポートする toArray メソッドを使用します。構文形式は「T[] toArray(T[] a);」です。

Javaでリストを配列に変換するにはどうすればよいですか?

関連する推奨事項: 「Java ビデオ チュートリアル

Java では、よく次のような問題が発生します。リストと配列の間の変換が必要なシナリオに。では、リストを配列に変換するにはどうすればよいでしょうか?次の記事で紹介します。

List を配列に変換するには、List の toArray() または toArray(T[] a) メソッドを使用できます。

リストを配列に変換する

リストを配列に変換するには、toArray メソッドを呼び出します。

次の 2 つがあります。オーバーロードはここにあります メソッド、

通常は、ジェネリック パラメーターを持つ 2 番目のメソッドを使用します:

Object[] toArray();
<T> T[] toArray(T[] a);

2.1. パラメーターのない toArray メソッド

Object[] toArray();

このメソッドは直接リスト変換します。 Object[]配列に。

Java 初心者はこのメソッドを使用するのが好きです。

パラメータなしで使用すると非常に便利です。

コードのコンパイル時にエラーは発生しません。

間違った使用例 コードは次のとおりです:

List<String> strList = new ArrayList<>();
strList.add("list-a");
strList.add("list-b");
String[] strArray = (String[]) strList.toArray();

結果が実行されるとすぐにエラーが直接報告され、

は Object[] を String[] に変換できません:

Exception in thread "main" java.lang.ClassCastException: 
[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

正しい使用コードは次のとおりです:

List<String> strList = new ArrayList<>();
Object[] strArray = strList.toArray();

通常は役に立たない Object[] を取得しました。

2.2. ジェネリック toArray メソッドのサポート

<T> T[] toArray(T[] a);

このメソッドは型 T の配列を受け取ります。ジェネリック型パラメータ。

int[] 型の配列を使用している場合、

int[] を Integer[] に置き換える必要があります。

使用するサンプル コードは次のとおりです:

List<String> strList = new ArrayList<>();
strList.add("list-a");
strList.add("list-b");
String[] strArray = strList.toArray(new String[strList.size()]);

2.3. toArray メソッドの入力パラメーターの配列サイズ

次のコードの場合、

初期化された String 配列

のサイズとリスト strList.size() のサイズとの関係、および

が戻り値に与えるさまざまな影響を分析します。 :

List<String> strList = new ArrayList<>();
strList.add("list-a");
strList.add("list-b");
String[] strArray1 = new String[size];
String[] strArray2 = strList.toArray(strArray1);

2.3 .1.size 4e69d3d77f834cb9471db539ab42ca63 strList.size( )

ここで size=strList.size() 1,

コード変更部分は次のとおりです:

String[] strArray1 = new String[strList.size()+1];

返される strArray2 と strArray1 は同じオブジェクトです

ただし、配列の最後の要素は null です。

配列内の要素がリストよりも多い場合、

リストがコピーされた直後の配列の末尾null に設定されます。

つまり、strArray1[strList.size()]=null,

これは、呼び出し元が配列の実際の長さを判断するのに役立ちます。

strList.size() 2 初期化配列を使用する場合、

配列の最後から 2 番目の要素は null です。

プログラミング関連の知識について詳しくは、

プログラミング教育

をご覧ください。 !

以上がJavaでリストを配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。