![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは 今DB接続し DBからデータを表示するのを勉強しています
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[][] selectExec(String sql, int fromIdx,int toIdx) throws SQLException{
String[][]all=selectExec(sql);
ArrayList list = new ArrayList(Arrays.asList(all[0]));
ArrayList list1 = new ArrayList(Arrays.asList(all[1]));
ArrayList list2= new ArrayList(Arrays.asList(all[2]));
int i=1;
while(i<fromIdx){ //指定された前のリスト削除
list.remove(0);
list1.remove(0);
list2.remove(0);
i++;
}
while(toIdx<list .size()){//指定されたあとのリスト削除
list .remove(toIdx);
list1.remove(toIdx);
list2.remove(toIdx);
toIdx++;
}
return hairetu(list ,list1,list2);
public String[][] hairetu(ArrayList T,List N ,List 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;
selectExec(String sql)で全表示
selectExec(String sql, int fromIdx,int toIdx)
で列を何行~何行を指定
でリストに変換、リスト削除して 二次元配列にもどしているのですが
たとえば
1~5を指定すると
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
6 6 6
8 8 8
↑のように
5ひとつとばしで表示されます
while文の書き方がわるいのでしょうか・・・・
アドバイスお願いします
No.1ベストアンサー
- 回答日時:
指定されたあとのリスト削除がおかしい
今はこうなってる
最初
インデックス:012345678
リストの中身:012345678
ループ1週目
toIdx=5
list .size()=8
list .remove(5)
インデックス:012345678
リストの中身:012345678
インデックス5=中身5が消える
ループ2週目
toIdx=6
list .size()=7
list .remove(6)
インデックス:01234567
リストの中身:01234678
インデックス6=中身7が消える
ループ3週目
toIdx=7
list .size()=6
ループを抜ける
ループ後
インデックス:0123456
リストの中身:0123468
要素を消すのでsize()は変化します。
どうすればうまくいく良く考えてみて!
5より後を消せばいいのなら前からではなく・・・
むちゃくちゃわかりやすかったです!!
半日ほど悩んで 今見て気がつきました!!
public String[][] selectExec(String sql, int fromIdx,int toIdx) throws SQLException{
String[][]all=selectExec(sql);
ArrayList list = new ArrayList(Arrays.asList(all[0]));
ArrayList list1 = new ArrayList(Arrays.asList(all[1]));
ArrayList list2= new ArrayList(Arrays.asList(all[2]));
int i=1;
while(i<fromIdx){ //指定された前のリスト削除
list.remove(0);
list1.remove(0);
list2.remove(0);
i++;
}
int k =list .size();
while(toIdx<k){//指定されたあとのリスト削除
list .remove(list .size()-1);
list1.remove(list .size()-1);
list2.remove(list .size()-1);
toIdx++;
}
と変更したところ うまくいきました!!
これで大丈夫ですよね??^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数を超えてアクセスしたと...
-
javaで大容量テキストファイル...
-
Javaで文字と数字が混ざったも...
-
配列の中に複数存在する数がい...
-
ページング
-
同じ配列またはクラスを、2回...
-
無名配列の作成方法について質問
-
ファイルから一行を読み込み配...
-
java
-
JavaのBase64デコードで正しく...
-
strutsで2次元配列をやりとりす...
-
csvファイルを2次元配列に格納
-
javamailで複数人にメールを送...
-
この警告はどうすれば?
-
C言語でunsigned char配列を連...
-
ファイルの読み込み、配列に格納
-
JavaBeansの配列の値取得方法に...
-
『args[]』とは?
-
エラーのStackTraceをString変...
-
Java 配列の問題です。 写真の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ページング
-
java
-
配列をセッションに割り当てた後で
-
この警告はどうすれば?
-
Javaで文字と数字が混ざったも...
-
javaで大容量テキストファイル...
-
セッションを使ったint型の値の...
-
C言語でunsigned char配列を連...
-
配列の中に複数存在する数がい...
-
Javaで文字を漢字であるか否か...
-
[Ljava.lang.Stringってなんですか
-
ArrayListからBean配列に値をセ...
-
C#で動的配列Listの中身をListB...
-
【C#】ハッシュテーブル(連想...
-
csvファイルを2次元配列に格納
-
配列で、値の入っている要素数...
-
『args[]』とは?
-
【Ajax通信&Java】配列の受け取...
-
データベースから取得したデー...
-
n番目に大きな値を探索する
おすすめ情報