お世話になります。

GUIから3つのString文字列を受け取り、追加ボタンを押した時点でVector(List)に格納し、登録ボタンを押してはじめてDBにデータを格納させたいのですが、

Vector list = new Vector();
String addData[] = {txta.getText(), txtb.getText(), txtc.getText()};
for(int i=0; i<addData.length; i++){
list.addElement(addData[i]);
}

しかし、連続してデータを追加するとlistには
{data1,data2,data3,data4,data5,data6}
のように入ってしまいます。
これを
{data1,data2,data3}
{data4,data5,data6}
のようにlistに格納するにはどうすればいいでしょうか?

ご教授頂ければ幸いです。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんにちは。


「String配列の要素を順番に格納している」ことを単に2回、3回と繰り返しているだけですので、結果としてStringが要素のVectorになるのです。
Vectorに格納するときにわざわざ要素ごとにばらさず、String配列をそのままいれれば、題意を満たすはずです。
Vectorから取得する際には、いまはおそらくStringにキャストしているでしょうが、String[]にキャストすれば再びString配列として利用できます。
    • good
    • 0
この回答へのお礼

解決いたしました!!

ありがとうございました~!

お礼日時:2003/10/09 14:59

 3×2の二次元のデータ構造に格納したいのですね。



 でも、元のデータは3個のString。ここからどのようにして6個のStringが出てくるのでしょうか。

 逆に言うと、{data1,data2,data3}と{data4,data5,data6}の区切りはどこでしょうか。

 また、Vectorはその名のとおり、一次元のデータ構造です。二次元にするにはVectorを配列にする(Vector[])か、またはVectorを使わずにStringの二次元配列(String[][])にします。

この回答への補足

どうもありがとうございます。

3つのStringは{住所 氏名 年齢}で、
一度追加ボタンを押して、連続して追加をした場合、
現状では{埼玉,菊川,25,神奈川,小泉,61}なります。

補足日時:2003/10/09 00:29
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qソフトウェアのダウンロードができなくなりました。

こんにちは。
数日前から急にソフトウェアのダウンロードができなくなりました。
具体的な症状としては、インターネットでVector等のサイトからソフトウェアのダウンロードをしようとすると「ダウンロード中」のポップアップは出てくるのですがそのままダウンロードが進まないという症状です。
インターネットは今もつながるのですが、ソフトウェアのダウンロードだけができません。
数日前までは問題なくできていました。
解決策をご存知の方教えていただけますか。

Aベストアンサー

ブラウザのキャッシュをクリアしてみて下さい。
IE6なら、ツール - インターネットオプション ー 全般タブで「ファイルの削除」をクリックです。

Qclass Test_A {  main(){}}の実行順序は?

public class Test_A {
public static void main(){

int a = 0;
int b = 1;

}
}
例えば上のようなサンプルで何故 main()がクラスTest_A の中に挟まっているのでしょうか?実行順序としては main()が終了したら、クラスTest_A の方はどうなるのでしょうか? main()からプログラムが始まるのは分かるのですが、その後の動作が分かりません。よろしくお願いします。 

Aベストアンサー

>main()がクラスTest_A の中に挟まっているのでしょうか

Javaは、全てのプロパティ、メソッドはどこかのクラスに属していないといけないからです。
mainメソッドであっても例外ではありません。

>main()からプログラムが始まるのは分かるのですが、その後の動作が分かりません。

これを考える上で最も重要なのはmainメソッドがstaticであることです。
staticなメソッドは、そのクラスのインスタンスを作らなくても、
つまり、new Test_A();としなくても実行することが可能です。
プログラム実行時には、Test_Aクラスのインスタンスは生成されません。
質問のコードでは変数a,bに値が代入され、それで終わりです。

Javaでは、(正確にはJavaVMは)実行するclassファイルにある、
String[]引数を持ったvoid mainメソッドを実行する仕様になっています。
しかし、mainメソッドを実行するときには何のインスタンスも生成されていないので、
何かのインスタンスのメソッドを実行することはできません。
なので、staticなメソッドでないとJavaVMが実行できないのです。
さらに、JavaVMからアクセス可能なスコープを与える必要があるので、
publicである必要もあるのです。

あとは、そのmainメソッドに指定されたコードを実行し、mainメソッドの最後まで処理が進んだら
そこでJavaVMが終了し、プログラムも終了します。

※細かい話ですが、main()からプログラムは始まりません。
正確に言うと、引数なしのmain()メソッドは他のメソッドと何ら代わりがありません。
プログラムを始めるには、
アクセススコープがpublicで、staticな戻り値のなく、引数にString配列を取るmainメソッド
であることが必要です。つまり、
public static void main(String[] args)
とするのが通常です。
試しに質問のコードをjavaコマンドで実行すると、NoClassDefFoundErrorが出るはずです。

>main()がクラスTest_A の中に挟まっているのでしょうか

Javaは、全てのプロパティ、メソッドはどこかのクラスに属していないといけないからです。
mainメソッドであっても例外ではありません。

>main()からプログラムが始まるのは分かるのですが、その後の動作が分かりません。

これを考える上で最も重要なのはmainメソッドがstaticであることです。
staticなメソッドは、そのクラスのインスタンスを作らなくても、
つまり、new Test_A();としなくても実行することが可能です。
プログラム実行時...続きを読む

Qvectorでソフトをダウンロード

vectorでソフトをダウンロード

vectorのサイトでフリーソフトをダウンロードしようとすると
missing plug-inと表示されてダウンロードが開始されません
どうしたらダウンロードできるのか教えてください

Aベストアンサー

Internet Explorerをお使いでできないなら、

ダウンロードが始まらない場合は、こちらをクリック

という所をクリックしてみてはどうでしょうか?
クリックでダメなら、右クリックで対象をファイルに保存でもやってみてください。

ダイレクトにファイル保存ができるはずです。

Q"try{}catch(){}"文で"close()"はどのように書けばよいのでしょうか。

こんにちは、片岡と言います。

プログラム1は、Java言語で学ぶデザインパターン入門(結城浩さん著)の
433ページを参考にして書きました。

私は、プログラム1のclose()の書き方よりもプログラム2のようなclose()の書き方が、
良いと思っています。
なぜならば、プログラム1では、out.writeObject(memento)行の例外によって、
close()が実行されないからです。

私のこの考え方は正しいのでしょうか。
もっと良いclose()の書き方はあるのでしょうか。
ご存知の方はいらっしゃいませんか。

●プログラム1
public class Main {
public static void saveMemento(Memento memento) {
try {
ObjectOutput out = new ObjectOutputStream(new FileOutputStream("game.dat"));
out.writeObject(memento);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
… //以下略
}

public class Memento implements Serializable {
… //以下略
}


●プログラム2
public class Main {
public static void saveMemento(Memento memento) {
try {
ObjectOutput out = new ObjectOutputStream(new FileOutputStream("game.dat"));
out.writeObject(memento);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
… //以下略
}

public class Memento implements Serializable {
… //以下略
}


なお、私の環境は以下の通りです。
OS: Microsoft Windows XP Professional SP2
開発環境:Eclipse 3.2.2
java: java version "1.4.2_13"

こんにちは、片岡と言います。

プログラム1は、Java言語で学ぶデザインパターン入門(結城浩さん著)の
433ページを参考にして書きました。

私は、プログラム1のclose()の書き方よりもプログラム2のようなclose()の書き方が、
良いと思っています。
なぜならば、プログラム1では、out.writeObject(memento)行の例外によって、
close()が実行されないからです。

私のこの考え方は正しいのでしょうか。
もっと良いclose()の書き方はあるのでしょうか。
ご存知の方はいらっしゃいませんか。

●プロ...続きを読む

Aベストアンサー

>私のこの考え方は正しいのでしょうか。
正しいです。質問者さんが書かれているやり方が一般的です。
念のため書いておきますが、outをtryの外で宣言しないとコンパイルが通りません。

まぁ、あくまでデザインパターンを学ぶための本ですから、細かなコーディングについて気にする必要はないでしょう(疑問を持つことは良いことですが)。

QVectorソフトダウンロードにて

Vectorソフトダウンロードで間違えて有料のソフトをダウンロードしてしまったんですがなんとかなりませんか?
まだ開いてはいないんですが

Aベストアンサー

そのまま該当ファイルを削除してしまえば大丈夫だと思います。

シェアレジ・プロレジなどの場合は、
ダウンロード後にインストールやレジストレーションに使うキーを
有料で販売していますので、それを買わなければ問題ありません。

それ以外の場合でもほとんどの場合お試し期間があり、
継続使用の場合にはお金を払う方式になっていますので、
ダウンロードしてしまった時点で
料金が発生するということはないと思います。

QA a = new A(){}; の構文の意味が分からない。

下記サイトのコードを読んでいて、

ResponseListener listener = new ResponseListener() {
//略
};

という書き方があったのですが、どういう意味になるのでしょうか?
インスタンスの作り方は単に

A a = new A();

だと思うのですが…。

http://www.snmp4j.org/doc/org/snmp4j/Snmp.html

Aベストアンサー

無名クラスと呼ばれるものよ。
私も良くやるわ。

ちなみに
A a = new A();
はできないわよ。
Aはインターフェースだからね。


上記の場合、正式に実装するなら、
ResponseListenerをimplementsした
MyResponseListener(仮名)を別途作成し、
それを
ResponseListener listener = new MyResponseListener();
とする必要があるわ。
でも、このMyResponseListenerは
今ここでしか使わない、他からまったく参照する必要のない
超ローカルなクラスなのよ。
このメソッドが終了すればGCにかけてもいいわけ。
そんな場合、わざわざクラスを1つ作る必要なくて
その場でちょちょいとやってしまうことができるのよ。
それが無名クラスっていう実装方法よ。

http://www.javaroad.jp/java_class15.htm

FileFilterやCompare、Runnableなんかで
他のクラスで再利用しないときは良くやるわ。

無名クラスと呼ばれるものよ。
私も良くやるわ。

ちなみに
A a = new A();
はできないわよ。
Aはインターフェースだからね。


上記の場合、正式に実装するなら、
ResponseListenerをimplementsした
MyResponseListener(仮名)を別途作成し、
それを
ResponseListener listener = new MyResponseListener();
とする必要があるわ。
でも、このMyResponseListenerは
今ここでしか使わない、他からまったく参照する必要のない
超ローカルなクラスなのよ。
このメソッドが終了すればGCにかけても...続きを読む

Qフリーソフトウェアのダウンロードに関しての疑問

フリーソフトウェアのダウンロードに関して、疑問が二つあります。

1、フリーソフトウェアをダウンロードすると、「開く」、「保存」、「実行する」などのオプションがありますがそれぞれ何を意味するのでしょう??

2、初歩的な質問かと思いますが、なぜフリーのソフトウェアなどを「ダウンロード」して「インストール」するという手順を踏むのでしょう??
「ダウンロード」、「インストール」のそれぞれをしなければ使えない理由を教えていただきたいです。

以上、ひとつでもいいのでわかる方いましたらよろしくお願いします。

Aベストアンサー

フリーソフトウェアをダウンロードしてなくてこれからしようとしている
という前提で話をさせていただきます、勘違いだったらごめんなさい
HP上からフリーの(またはノンフリーの)ファイルを見つけてそれをクリックしたとき
ブラウザは拡張子を見てその後の動作を決定します
たとえばtest.pdfというファイルがHP上にあったとしてそれをクリックするとブラウザはpdfの読み込みのできるプラグインを持っていれば
Temporary Internet Filesフォルダにダウンロードされたtest.pdfを
ブラウザの画面に表示します
このことはデスクトップにダウンロードしたtest.pdfなどのデータファイル
を「開く」事とほぼ同じ結果になります
(IEを使うのかAdobeReaderを使うのかの差ぐらいしかありません)

ここで拡張子を見てその後の動作を決定するのでHP上のtest.cntをクリック
するとブラウザはそんな拡張子は知らないのでOSに処理をゆだねます
そこでも「開く」を選択すればOSがtest.cntの拡張子に関連づけられた
アプリケーションを検索しそれがあればTemporaryInternetFilesフォルダに
ダウンロードを開始してアプリケーションにデータを渡しますし
関連づけられたアプリケーションがなければプログラムの一覧を
表示してどのプログラムにデータを渡すかUSERに聞いてきます
拡張子と関連づけに関してはWindows2000であればコントロールパネル
→フォルダオプション→ファイルタイプから拡張子をえらんで
詳細設定をクリックすればその拡張子だとOSがどうするのかがわかります


またHP上のtest.exeをクリックして「開く」と自動的にTemporaryInternetFilesフォルダにアプリケーションを
ダウンロードしTemporaryInternetFilesフォルダでアプリを実行します
このことはブラウザ上のtest.exeを「実行する」としても
同じ事が起こります
先ほどからTemporaryInternetFilesフォルダにダウンロード
すると言っていますがこのフォルダは一時的にファイルを保管している
だけのフォルダで使われないファイルや古いファイルはどんどん消していきます
そうならないためにはほかの場所にダウンロードするのがよいと思います
アプリケーションの置き場を明示的に指定するオプションが「保存」
になり好きなところ(管理しやすいところ)にファイルを置くことができます

2.の質問ですが
ほとんどのフリーのソフトウエアがCDやDVDに収録されていないので
WebまたはFTPサーバからの配布方法でしか配布できないというのが
ダウンロードしなければならない理由でしょうか
インストールの理由ですがインストールする必要のないソフトもあります
単体で動作するソフトをダウンロードすればクリック一つで動作します
インストールする必要があるソフトとはインストールされる環境によって
ソフト側でも設定変更を行わなければならないソフトだと考えています

CDやDVDでのアプリのインストールではOSのAutoRun機能でおまかせ
インストールができる事が多くCDやDVD入れたらリターンキー数回押して
メディアを取り出したらインストール終了ということも大いにあります

というのではだめですか?

フリーソフトウェアをダウンロードしてなくてこれからしようとしている
という前提で話をさせていただきます、勘違いだったらごめんなさい
HP上からフリーの(またはノンフリーの)ファイルを見つけてそれをクリックしたとき
ブラウザは拡張子を見てその後の動作を決定します
たとえばtest.pdfというファイルがHP上にあったとしてそれをクリックするとブラウザはpdfの読み込みのできるプラグインを持っていれば
Temporary Internet Filesフォルダにダウンロードされたtest.pdfを
ブラウザの画面に表示します...続きを読む

QJavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味?

JavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味?


YOUTUBE日本語版
http://jp.youtube.com/
のHTMLソースを見ていたら、



<script type="text/javascript">
    window.google={kHL:"ja"};
</script>


という記述を目にしたのですがこれはどういう意味あいというか目的のものなのでしょうか?


教えていただければ幸いです。

Aベストアンサー

これは、window.googleに'kHL'というキー(値は'ja')を持つ連想配列を
作成しています。

JavaScriptでの連想配列は

var 変数名 = {
キー : '値',
キー : '値',
:,
キー : '値'
};

というような感じで作成します。
キーはダブルクォートまたはシングルクォートで囲まなくても
いいようです。

参考URL:http://javascriptist.net/docs/basic_hash.html,http://www.openspc2.org/JavaScript/kouza2007/array/hash/index.html

Qダウンロード vector

vectorとかでダウンロードするときに確認せずにダウンロードにうつってしまうんですが、これを確認するにはどうしたらいいのでしょうか?

Aベストアンサー

ダウンロードする際に保存の確認メッセージが表示されない場合の対処方法
http://support.microsoft.com/default.aspx?scid=kb;ja;880999

こっちかな
IEでしたら ツール インターネットオプション セキュリティ レベルのカスタマイズ ファイルのダウンロード時にダイヤログボックスを開く が有効になってますか

Qreturn {c : c, h : h}について

私以外が作ったjavascriptプログラムでこのように書かれていました。

var h = null;
var c = null;
//省略
return {c : c, h : h}

このreturn文のところの意味を知りたいのです。
{x : x, y : y}という形式でプログラムすると、
どのような条件として判断されるのでしょうか?

このプログラムの意味が分かりませんでした。
もしよろしければ、教えて頂けませんか。
よろしくお願い致します。

Aベストアンサー

まず、Objectの表記方法はご存知ですか?
var o={a:1, b:2, c:"3"}
とかいう表記はObjectを表し、
alert(o.a)
という形で、プロパティを呼び出したり、という使い方があります。

なんてのは、「javascript オブジェクト初期化子」で検索していただくとして、


本題。
仕様上、functionは1個または0個の戻り値しか返せません。
  例:function f(){return 1;return 2;} はreturn 1が実行された時点で終了。
ですが、2個以上の戻り値が必要になることもあり、(人それぞれ?)
  例:角度を指定し、sin と cos の両方の値を返したい
    画像の縦と横のサイズを知りたい
そんなときに複数の値をプロパティとして持った一つのObjectにまとめてしまえば、
戻り値は一つですむ、という解決方法があったりします。(質問内容はこれにあたります)
配列で、なんていうのもあったり。


function f(t){return {s:Math.sin(t), c:Math.cos(t),t:Math.tan(t)}}
について、
var r=f(3.14)
alert(r.s)//sinの値を参照
alert(r.c)//cos
といったように使われます。私は使ったことないです。

独り言:あぁ、メモリの悲鳴が・・・

まず、Objectの表記方法はご存知ですか?
var o={a:1, b:2, c:"3"}
とかいう表記はObjectを表し、
alert(o.a)
という形で、プロパティを呼び出したり、という使い方があります。

なんてのは、「javascript オブジェクト初期化子」で検索していただくとして、


本題。
仕様上、functionは1個または0個の戻り値しか返せません。
  例:function f(){return 1;return 2;} はreturn 1が実行された時点で終了。
ですが、2個以上の戻り値が必要になることもあり、(人それぞれ?)
  例:角度を...続きを読む


人気Q&Aランキング

おすすめ情報