ジャグ配列とは? わかりやすく解説

ジャグ配列

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/13 01:36 UTC 版)

配列」の記事における「ジャグ配列」の解説

配列配列」の場合内側配列について、要素数が揃っていることを要求しないデータ構造であることもある。ジャグ配列 (jagged array)、不規則配列などと言う。これに対し内側配列要素数が揃った配列矩形配列 (rectangular array) などと言うJavaにおける配列配列はジャグ配列である。C#には前述通り、「真の多次元配列」もあるが、それとは別に配列配列もあり、そちらはJava同様のジャグ配列である。 Javaによるジャグ配列の例を示す。 int[][] numArr = new int[3][];numArr[0] = new int[]{1, 2, 3};numArr[1] = new int[]{4, 5, 6, 7};numArr[2] = new int[]{8, 9};System.out.println(numArr[1][1]); C#によるジャグ配列の例を示す。 int[][] numArr = new int[3][];numArr[0] = new int[]{1, 2, 3};numArr[1] = new int[]{4, 5, 6, 7};numArr[2] = new int[]{8, 9};System.Console.WriteLine(numArr[1][1]); 要素アドレス指定するための参照の展開は、ジャグ配列では次元の数だけ必要なのに対し矩形配列では1回で済む。また配列領域確保する際、ジャグ配列では次元ごとに領域確保繰り返す必要があるのに対し矩形配列では1回new演算子使用領域確保できる。ただし矩形配列は全要素が収まる連続領域確保しなければならず、疎行列などのまばらな配列には空間的オーバーヘッド大きくなってしまうことから向いていない。また、.NET Framework中間言語には1次元配列要素アクセスに関する専用命令存在するため、矩形配列よりもジャグ配列のほうが速度性能面で有利になるケース存在するC言語では、配列を指すポインタは、その配列サイズ固定しなければならない配列を指すポインタではなく、「『配列先頭要素を指すポインタ』の配列」によって、次のようにしてジャグ配列のようなデータ構造作ることができる。 int *numArr[3];int tmp0[] = {1, 2, 3};int tmp1[] = {4, 5, 6, 7};int tmp2[] = {8, 9};numArr[0] = tmp0;numArr[1] = tmp1;numArr[2] = tmp2;printf("%d\n", numArr[1][1]); // print "5" 例示たように、「配列配列」と同様の構文アクセスできるが、@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}データ構造としては異なっている[要追加記述]。当然、(生成されるコード[要追加記述]を読めばわかるが)意味的に違うものであって混同してならないましてや多次元配列サポートされていると考えるべき」などと考えるのは、混乱の元でしかない

※この「ジャグ配列」の解説は、「配列」の解説の一部です。
「ジャグ配列」を含む「配列」の記事については、「配列」の概要を参照ください。

ウィキペディア小見出し辞書の「ジャグ配列」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ジャグ配列」の関連用語

ジャグ配列のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ジャグ配列のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの配列 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS