• ベストアンサー

配列の値の削除について

JSP間でデータの受け渡しの際に、配列の要素で0以外の値だけを受け渡したいと考えています。 例えば、 for (int i = 0; i < list.size(); i++) {  in[i] = ((Integer)list.get(i)).intValue(); } で、inの中の0の要素を削除というようなことをして、session.setAttributeで送りたいと考えているのですが、 よく解らず、困っています。 アドバイス頂けたら幸いです。 宜しくお願いします。

  • brin
  • お礼率50% (4/8)
  • Java
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
回答No.3

すみません。先程の者です。 要素が数値の0ですね・・・ list→{0,1,0,3,0}を in→{1,3}でいいですか? ************************************************ for (int i = 0; i < list.size(); i++) { if ((Integer)list.get(i) == 0) {    list.remove(i); } } int[] in = new int[list.size()]; for (int i = 0; i < list.size(); i++) { in[i] = (Integer) list.get(i); } ************************************************ でお願いします。

brin
質問者

お礼

回答ありがとうございます。 無事解決することができました。

その他の回答 (2)

回答No.2

こんばんは。 listに、{10,20,30,40,50}と入っていたら、 inには、{20,30,40,50}にするといった感じですか? ************************************************** int[] in = new int[list.size() - 1]; for (int i = 0; i < list.size() - 1; i++) { in[i] = (Integer) list.get(i + 1); } ************************************************** これでいいと思います。

  • tomo316
  • ベストアンサー率35% (51/142)
回答No.1

こんな感じでいかがですか j=0; for (int i = 0; i < list.size(); i++) {  if (0 < ((Integer)list.get(i)).intValue()) {    in[j] = ((Integer)list.get(i)).intValue();   j++;  } }

brin
質問者

補足

回答ありがとうございます。 実際に試してみたのですが、うまくできませんでした。

関連するQ&A

  • JSPとJavaBeansについて

    JSPとJavaBeansを用いて情報を共有したいと考えています。 値を取得した後に配列に入れています。 ArrayList list = new ArrayList(); while(rs.next()){ int op = rs.getInt("op"); list.add(new Integer(op)); } int[] in = new int[list.size()]; for (int i = 0; i < list.size(); i++) { in[i] = ((Integer)list.get(i)).intValue(); この後に、in[i]の要素をBeansに送り、別のJSPでその値を使いたいと考えています。 ただ、Beansで配列のデータを扱う場合にはどのようにすれば宜しいのでしょうか? アドバイスを頂けると助かります。 宜しくお願いします。

  • JSP内でfor文を使用し、出力結果にそれぞれ違う値を入れ、サーブレットで受け取りたいです。分かる方教えてください。

    JSP内でfor文を使用し、出力された値それぞれに違う値を設定し、それをサーブレットで受け取りたいのですが? 分かる方教えてください。 <%Integer N = 0; Integer I = (Integer)session.getAttribute("I"); %> <%for(int i=0; i<list.size(); i++){ ListBeanServlet lBean = (ListBeanServlet) list.get(i);N++;%> <a href="/myHtml/ResultS" ><font size="3" color="white"> <c:set var="param" /><%=N%>/<%=lBean.getLMusic()></font></a><br> <%session.setAttribute("param",N); } %> この様に変数Nに値をいれ、N++で各結果に数字符合をして、 出力結果<a href>ひとつひとつに値を設定しようと思うのですが。 Nの値がやはりfor文の最期の値になってしまい。 出力結果の値が全て同じになってしまいます。 (1)List.sizeは不定数です。 (2)form/hiddenを使ってみたものの、変数の値がnullになってしまう。 <% for(int i=I-1; i<list.size(); i++){ ListBeanServlet lBean = (ListBeanServlet) urList.get(i);%> <param name="FileName" value="<%=lBean.getUrl()%>"> <%} %> 同じJSP内の違う場所にサーブレットを使用し送り、 クリックした<a herf>によって違う設定をしたいのですが? 分かる方教えてください。

  • 配列をセッションに割り当てた後で

    javaBeanでDBにアクセスして、取得した値を配列に格納します。その配列をサーブレット側でgetメソッド使って取得し、セッションに割り当てます。その後、JSP側でセッションを通して配列の各要素を取り出し表示させたいのですが<%= session.getAttribute("Date") %>←(Dateが配列)では配列の各要素ではなく配列そのものが取り出されるのか、 [Ljava.lang.String;@737371 のような文字が表示されてしまいます。 セッションで割り当てられた配列の各要素の値の取得のやり方がわかる方どうかご教授お願いします。

    • ベストアンサー
    • Java
  • textboxの値受け取りについて

    JSPを使って、値の受け渡しを行おうと考えています。 for文で for (int i = 0; i < list.size(); i++) { out.println("<input type=\"text\" name=\"rank\" size=\"5\">"); } とした時に別のJSP上でrequest.getParameterで取得するには どうしたら良いのでしょうか? どうしても、始めの値のみ取得する形となってしまいます。 アドバイスを頂けたら幸いです。 宜しくお願いします。

    • ベストアンサー
    • Java
  • 連想配列の配列の使い方

    C言語でいうところの構造体の配列(要素は"hoge"と"fuga"のみ)を perlで表現する場合、連想配列の配列にするのが一般的でしょうか? 以下の様なソースコードなのですが、perlらしさが失われている気がします。 perlらしく書くとしたらどう書くのが良いでしょうか? [ソース] @list; #この配列の要素に連想配列を入れる sub input{ #list.txtの中にはhogeとfugaの値がカンマ区切りで記入されている open(IN, "list.txt");  $i = 0; while ($xx = <IN>) { ($list[$i]{"hoge"}, $list[$i]{"fuga"}) = split /,/, $xx; $i++; } close(IN); } sub output{ for($i = 0; $i <= $#list; $i++){ print $list[$i]{"hoge"}, $list[$i]{"fuga"}; } }

    • ベストアンサー
    • Perl
  • 配列のコピーをして値を返したいが

    //配列のコピーをして値を返したい import java.util.*; public class Test7_22 { static int[] arrayClone(int[] a){ int[] b = new int[a.length]; for(int i =0;i>a.length;i++) b[i] = a[i];//ここで代入されるはず return b; } public static void main(String[]args){ Scanner std = new Scanner(System.in); System.out.print("要素数:"); int n = std.nextInt(); int[] a = new int[n]; for(int i=0;i<n;i++){ System.out.print("a["+i+"]="); a[i] = std.nextInt(); } int[] x = arrayClone(a); for(int i=0;i<a.length;i++) System.out.println("x["+i+"]="+x[i]); } } //コンパイルするとb[0] = 0になる

    • ベストアンサー
    • Java
  • 配列について質問です。

    学校で以下のような内容のプログラムを組む課題が出されました。 「数を格納した配列の各要素の和を出力せよ。」 一応組むことはできたのですが、引っかかることがあります。 私が組んだのは下のような要素の個数は引数で定義、 各要素は標準入力で読み込むというものです。 import java.io.*; class main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); int n =Integer.parseInt(args[0]); int[] a = new int[n]; for(int i=0;i<n;i++){ a[i] = Integer.parseInt(br.readLine()); } int b=0; for(int i=0;i<n;i++){ b+=a[i]; } System.out.println("sum = "+b); } } ここで質問なのですが、仮に引数で5と入力すると 配列a[]はa[0]~a[5]の計6個できると思うんです。 でも、実行してみると要素数はa[4]の5個までしかできず、 最後のa[5]はどこに行ったのだろう?というものです。

    • ベストアンサー
    • Java
  • 配列

    エクセルvbaなのですが Sub test() ' 配列 Dim arr() As Integer= {0, 1, 2, 3, 4, 5} ' 抜き出した要素を格納するための変数 Dim i As Integer ' すべての要素について繰り返す For Each i In arr Console.WriteLine (i) Next End Sub これって何でエラーになるのでしょう? Dim arr() As Integer= {0, 1, 2, 3, 4, 5} でエラーになりますが、なぜだかわかりません。

  • 配列の問題

    配列の問題です。 n個の要素を持つ一次元配列の値(変数値)をまったく逆に入れ替えるプログラムを作りたいのですが、この場合どのようにして逆を表現すればよいのかわかりません。 (nの値は読み込み、配列は奇数個でも偶数個でも使えるプログラムでなければなりません) 参考書を見ながら作ってみたのですが…だめでした。 プログラム初心者です。アドバイスお願いします。 int main(void) { int i,n; int vc[n]; printf("n個の要素を持つ一次元配列をつくる\n"); printf("nの値を入力してください\n"); scanf("%d",&n); for (i=0;i<n+1;i++) vc[i]=i+1; for (i=0;i<5;i++) printf("vc[%d]=%d\n",i,vc[i]); printf("この配列を逆に入れ替えると\n); return 0; }

  • プログラミング 配列 合計

    配列の要素に値を読み込んで表示させるプログラムは 1#include <stdio.h> 2 3int main(void) 4{ 5 6 int i; 7 int vc[5]; 8 9 for (i = 0; i < 5; i++) 10 vc[i] =i + 1; 11 12 for(i = 0; i < 5; i++) 13 printf("vc[%d] = %d\n", i, vc[i]); 14 15 return (0); }でこれを書きなおして配列の値を合計するプログラムはどういうプログラムになるか教えていただけませんか?

専門家に質問してみよう