• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:各配列の要素番号で、別の配列に移動する変換?)

配列の要素番号で別の配列に移動する変換方法

このQ&Aのポイント
  • 質問文章では、データベースから返ってきた80個のString配列を別の配列に移動する方法を尋ねています。
  • 移動する際には、検索結果の1〜40番目の配列を最初の配列に、41〜80番目の配列を2番目の配列に移動します。
  • さらに、各配列の最初の要素を1つ目の配列に、2番目の要素を2つ目の配列に移動したいとのことです。どのようにロジックを書けば良いかアドバイスが欲しいとのことです。

質問者が選んだベストアンサー

  • ベストアンサー
  • takaP-
  • ベストアンサー率79% (83/105)
回答No.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];   } } あまり直線的過ぎて良いプログラムとはいえません(笑 でも、少しは思考の足しにでもなれば。

mkim
質問者

お礼

ご回答ありがとうざいます。 すっかり忘れていました。 色々思い出したり、知らない事もあり、勉強になりました。 また、お世話になることもあるかと思いますが、その際も ご教示いただきますよう、よろしくお願い致します。 #まだまだ、配列操作が身についていないもので、苦労します。 #もう少し、勉強しないと(^^;)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 配列の要素数について

    私はよくperlで for ($i=0; $i<=$#hoge; $i++) {} などと書いたりするのですが、phpで同じようにしたいのですが、 その際、perlの配列最後の添字を返す$#hogeにあたるものはないものなのでしょうか? あくまでforeachなど別の方法論や複数行ロジックを書いて取得するなどではなく配列の最後の添字を簡単に取得できるかが問題なのです。

    • ベストアンサー
    • PHP
  • DB接続 二次元配列 指定表示

    DB接続でデータを取得したいとおもっています 今DBで3×10のデータがはいっており、... DB接続でデータを取得したいとおもっています 今DBで3×10のデータがはいっており、取得、二次元配列に返してあげている状態です この例だと3列(TESTNO、KANA、NAME)だと取得できるのですが TESTNO,KANA の二列取得をしたときにエラーが発生してしまいます どのように改善すればエラーが発生せず、取得できるようになりますか? それともこのロジック自体がまずいのでしょうか? アドバイスお願いします ソース一部 public String[][] selectExec(String sql) throws SQLException{ Statement smt = con.createStatement(); //ステートメントオブジェクト作成 SQL文を送るために作成 ResultSet aa=smt.executeQuery(sql); //SQLから要素取得 ArrayList<String> TESTNO = new ArrayList<String>(); //TESTNO用ののArrayList作成 ArrayList<String> NAME = new ArrayList<String>(); //KAME用 ArrayList<String> KANA = new ArrayList<String>(); //KANA用 while(aa.next()){ //Resultsetが最終行になるまで実行 TESTNO.add(aa.getString("TESTNO")); NAME.add(aa.getString("NAME")); KANA.add(aa.getString("KANA")); } aa.close(); //使い終わったリザルトクローズ smt.close(); //ステートメントクローズ //オブジェクトの解放 return hairetu(TESTNO,NAME,KANA); } public String[][] hairetu(ArrayList T,ArrayList N ,ArrayList K){ String[][]all=new String[3][T.size()]; all[0] = (String[])T.toArray(new String[0]);//配列TSETNOに収納 all[1] = (String[])N.toArray(new String[0]);//配列NAMEに収納 all[2] = (String[])K.toArray(new String[0]);//配列KANAに収納 return all; よろしくお願いします

    • ベストアンサー
    • Java
  • 配列内の要素を検索するにはどうしたら良いですか?

    javaの経験なんてまだ2ヶ月もたっていないので配列内を検索をしようにも想像がつかないです とりあえず作りかけソースコードを載せます↓ import java.util.*; class StudentList { public static void main(String[] args){ int ID[]={23,45,78,51,9}; String name[]={"荒川","神田","吉田","渡辺","木村"}; Scanner sc=new Scanner(System.in); System.out.print("学生番号を入力してください>"); int key =Integer.parseInt(sc.next()); } } お優しいかたアドバイスをお願いします

    • ベストアンサー
    • Java
  • int配列をbyte配列に変換

    MIDPアプリを作成している初心者です。 Image データを一旦端末のレコードストアに保存しておく為、 getRGB()で取得したint配列を、byte配列に変換しなくてはいけません。 ↓のように レコードストアに書き込むメソッドを書いてみました。 public void writeRecordStore( String name, Image image ) {     int width = image.getWidth();     int height = image.getHeight();     int[] pxData = new int[ width*height ];     byte[] byteData;     RecordStore rs = null;     try {         //画像をバイトデータに変換         image.getRGB( pxData, 0, width, 0, 0, width, height );         //レコードストアを開く         rs = RecordStore.openRecordStore( name, true );         //バイト配列に変換 ← ここがわからない                  //レコードの追加         rs.addRecord( byteData, 0, byteData.length );              } catch( Exception e ) {     } } int配列をbyte配列に変換する方法わかる方 ご教授の程お願いします。 また、まだコーディングに自信が無いので、文法のミスもご指摘頂けたらありがたいです。

    • ベストアンサー
    • Java
  • java 配列について

    public class Sample{ public static void main( String[ ] args ){ String x = "pen"; String[] y = new String[1]; y[0] = x; x = "pencil"; System.out.println(y[0]); } } java初心者です。 配列の参照先を変更して 配列の数を変更せず配列0に 実行時にpencilと表示させたいのですが よい方法はありますでしょうか?

    • ベストアンサー
    • Java
  • iアプリで、配列の使い方がわからず困っています。

    iアプリで、あるクラスの配列を別のクラスで利用したいのですが、その方法がよくわかりません。 たとえば、Itemクラスの配列の任意の要素を、Testクラスで使用したい場合、どのようにすればよいのでしょうか。 ========== Item.java ========== public class Item { String Item[] = new String[700]; Item(){ Item[0] = new String("item0"); Item[1] = new String("item1"); Item[2] = new String("item2");   ・   ・   ・ Item[699] = new String("item699"); } } ========== Test.java ========== public class Test extends IApplication { public void start(){ /* Itemクラスの配列'Item'を使用するための記述がわかりません。 */ Dialog _dialog=new Dialog(Dialog.DIALOG_INFO,"Item"); _dialog.setText("Item:" + Item[258]); // ← 配列'Item'の任意の要素(Item[258])を適用したい。 _dialog.show(); terminate(); } }

    • ベストアンサー
    • Java
  • [JAVA]可変長に配列?

    こんばんわぁ♪ 配列を定義する際に・・・ String[][][] TEST = new String[10][10][10]; というように「箱」の数を指定しますが・・・ String[][][] TEST2 = new String[10][10][10]; のように、可変長(?)にできませんか? なぜこのようなことをするか・・・ 各「箱」にいくつデータが格納されているかを取得するためです。 int z = TEST[0].length; というように・・・ なにか、いい案はありませんか??

    • ベストアンサー
    • Java
  • GETで渡す配列に関して

    こんばんは。お世話になっております。 早速ですが、DB内のデータを複数あるチェックボックス(name="category[]"など)を用いて、別ファイルにGETでデータを送り、検索結果を表示させているのですが、データ量が多いため、表示させるデータ数を一定にし、「次のページへ」とリンクを張ることで前後のページに移動できるよう考えています。 そこで、今回躓いたのが、検索フォームから渡された配列のデータ(チェックボックス)を、次ページへ移動させる際、どのような記述になるのでしょうか? 当たり前でしょうが、検索実行ファイルに渡されたデータをそのまま($category=$_GET["category"];)リンクに貼り付けても上手く行かず、 $category_box = implode(' ',$_GET["category"]); $arr1 = explode(" ",$category_box); foreach($arr1 as $category_box){ $wherearr1[] = "category like '%$category_box%'";} として、配列に戻してから・・などとも思ってはいるのですが、全て上手くいくことが出来ません。 お忙しい中恐縮ですが、アドバイスなど頂けたら幸いに思います。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 配列の渡し方

    お世話になります。 DBからの検索結果を指定した件数で表示するプログラムを作っています。最初のページはうまく表示できるようになったのですが、次のページを表示する際に検索条件が引き継がれずうまく表示できません。検索条件は配列で持っているのですが、配列の中身ごと次のページに引き渡すにはどうしたら良いのでしょうか? ちなみに現在は下記のようなコードで実行しています。 echo " <a href=\"".$_SERVER["PHP_SELF"]."?p=$next&gender=$genderUrl&area=$areaUrl\"> 次のページ</a>"; 上記のコードで言うと、&areaが配列になります。 &genderは単なる数値なのでうまく引き継がれるのですが、&areaはArray()となるだけでうまく引き継がれません。なお、配列の中身は2バイト文字です。 お手数をお掛けしますがよろしくお願いします。

    • 締切済み
    • PHP
  • std::mapの要素を別のキーに移動したいのですがどうしたら良いでし

    std::mapの要素を別のキーに移動したいのですがどうしたら良いでしょうか。 例 map<int, list<string>> m; キー|値 1 |"aaa","bbb" 2 |"ccc" ↓ キー|値 2 |"ccc" 3 |"aaa","bbb" 検索して削除して挿入を考えましたがもっと効率の良い方法はあるのでしょうか?