- ベストアンサー
配列の要素番号で別の配列に移動する変換方法
- 質問文章では、データベースから返ってきた80個のString配列を別の配列に移動する方法を尋ねています。
- 移動する際には、検索結果の1〜40番目の配列を最初の配列に、41〜80番目の配列を2番目の配列に移動します。
- さらに、各配列の最初の要素を1つ目の配列に、2番目の要素を2つ目の配列に移動したいとのことです。どのようにロジックを書けば良いかアドバイスが欲しいとのことです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まずは説明用に検査用の配列データを適当に作ります。 String[] data=new String[30]; for(int i=0 ; i<data.length ; i++){ data[i]=new String(" "+i+" "); } これで0~29の文字列配列が出来ますよね。 最終的に同数値の文字列配列が出来あがれば成功というわけですね。 つぎに要素数80の二次元配列をつくります。 String[][] all=new String[80][]; for(int i=0 ; i<all.length ; i++){ all[i]=data; } 下準備が済んだので、本題に。。。 >結果1 ~~結果40までの40個をまず別のStringの >配列に移動します。残りの結果41~~結果80までを別 >の配列に移動します。 これは、java.lang.System#arraycopy()使えば簡単です。 //最初に配列を用意しておく String[][] half1=new String[40][]; String[][] half2=new String[40][]; //分割 System.arraycopy(all,0,half1,0,40); System.arraycopy(all,40,half2,0,40); つぎは。。。 >各配列の[0]を1つの配列に、[1]を1つの配列に・・ >と言う具合に移動したい。 ですが、これは力づくで(笑 String[][] sort1=new String[30][40]; for(int i=0 ; i<half1.length ; i++){ for(int j=0 ; j<half1[i].length ; j++){ sort1[j][i]=half1[i][j]; } } String[][] sort2=new String[30][40]; for(int i=0 ; i<half2.length ; i++){ for(int j=0 ; j<half2[i].length ; j++){ sort2[j][i]=half2[i][j]; } } あまり直線的過ぎて良いプログラムとはいえません(笑 でも、少しは思考の足しにでもなれば。
お礼
ご回答ありがとうざいます。 すっかり忘れていました。 色々思い出したり、知らない事もあり、勉強になりました。 また、お世話になることもあるかと思いますが、その際も ご教示いただきますよう、よろしくお願い致します。 #まだまだ、配列操作が身についていないもので、苦労します。 #もう少し、勉強しないと(^^;)