Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。100件0以下のような、二つの配列を併合させ、数字を小さい順に並べ替えた新たな配列を作りたいのですが、ArrayIndexOutOfBoundsExceptionというエラーが表示されます。このようになるか見当がつきません。返答お待ちしております。票1ArrayIndexOutOfBoundsExceptionという例外が発生するのであれば、ArrayのIndexを指定している部分を網羅的に追っていくと良いでしょう。デバッグ機能のあるIDEを使用しているなら、小さな配列を渡して1ステップずつ実行しながら、変数の変化を見ていくのも手ですが、ここではひたすらデバッグ出力を仕込んでみます。4}、arr2に長さ3の配列{3,2,5}を渡すと、こんな感じの出力が得られました。arraymerge.ArrayMerge.main(ArrayMerge.java:19)arr1の長さが2ですから、iは0から1まで変化します。2)に達する前にarr3のIndexとして使われているdimの値が限界の4を超えてしまっているので、そこでArrayIndexOutOfBoundsExceptionの例外が発生してしまっています。}の二重ループがあるので、この例の場合2×3=6回ループ内の処理を実行しようとします。}となっているので、条件内のどの分岐を通ろうと、少なくとも1回、多いときには2回dim++を実行します。従って、二重forの2×3=6回の実行の間に、dimの値は少なくとも6に到達することになります。arr3の長さは2+3=5しかないのですから、dimの値が4を超えてしまった時点でarr3[dim]を実行したときに、ArrayIndexOutOfBoundsExceptionの例外が発生してしまっているわけです。配列を前から順にスキャンして、結果配列に詰めていく、という処理を1回だけで「数字を小さい順に並べ替えた新たな配列」を作成することはできません。いわゆる「マージソート」で使われるマージ処理ですと、以下のような単純なマージ処理を繰り返し呼ぶことで、最終的に「数字を小さい順に並べ替えた新たな配列」を得ることができます。あなたの今回のmergeメソッドの目的が、マージソートの原理を知るための学習なのか、単純に配列をソートしたいだけなのかがわからないのですが、後者の場合であるなら、配列の中身を連結した後に、Javaに標準で備わっているソート系のメソッドを利用した方が良いでしょう。(マージソートは元の配列の2倍の領域が必要なため、通常配列のソートには使われません。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。会を開催します🎉サイトの未翻訳箇所を見つけて、もくもく会で直しましょう関連する質問2day_of_week.javaとleap_year.java(うるう年計算)を使いcalendar.javaのcmdを出したい。2Javaのコンパイル時にエラーが出る1横スクロールと画像縮小をしたい0ZxingのQRコード作成をJava1.5で行う方法を教えてください。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。