- PR -

Beansの配列について

1
投稿者投稿内容
みーちく
大ベテラン
会議室デビュー日: 2002/08/29
投稿数: 131
投稿日時: 2002-09-18 12:57
みーちくと申します。
まだJavaの勉強を始めて2週間という超初心者ですので、質問の内容が
わかりずらいとは思いますが、宜しくお願いいたします。

現在、JSP→Servlet→Beansという構成で、セッション管理をしております。
Beansで配列のデータを扱う場合にはどのようにすれば宜しいのでしょうか?

【システム】
RedHat7.1/apache1.3.26/tomcat3.2.3/ant1.4.1/jdk1.3.1


Beans
普通はこのように書くと思うのですが。
private String Name;
public void setName(String s) {
 name = s;
}
public String getName() {
 return name;
}

配列の場合
private String Name[];
public void setName(String s[]) {
 name = s;
}
public String[] getName() {
 return name;
}

よろしくお願いいたします。
DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2002-09-18 13:09
引用:

みーちくさんの書き込み (2002-09-18 12:57) より:

配列の場合
private String Name[];
public void setName(String s[]) {
 name = s;
}
public String[] getName() {
 return name;
}

よろしくお願いいたします。



これと、あと、
コード:
public void setName(int i, String s) {
    name[i] = s;
}
public String getName(int i) {
    return name[i];
}



こういうのを用意したりします。
(必要ならば、ですが。)
引数iで指定された部分の書き込み/読み込みをします。

みーちく
大ベテラン
会議室デビュー日: 2002/08/29
投稿数: 131
投稿日時: 2002-09-18 13:43
DaikiRyutoさん

返信ありがとうございました。

引用
public void setName(int i, String s) {
name[i] = s;
}
public String getName(int i) {
return name[i];
}

(必要ならば、ですが。)
引数iで指定された部分の書き込み/読み込みをします。


↑この部分は必要なのかちょっと判断できないので、
早速試してみます。
ありがとうございました。
takasaki
常連さん
会議室デビュー日: 2002/02/14
投稿数: 31
投稿日時: 2002-10-15 19:07
こんばんは。便乗質問させてください。

public void setName(int i, String s) {
name[i] = s;
}

を使ってnameのlengthを動的に増やしたいのですが

int index = 0;
while(rs.next()){
hoge.setName(index , rs.getString(1));
index++;
}

のようにすることはできないのでしょうか。
それともこんなふうに

name = new String[index];
index = 0;
while(rs.next()){
name[index] = rs.getString(1);
index++;
}
hoge.setName(name);

最初にlengthを取得して配列として渡してやるのが普通なんでしょうか。
あるいはsetNameの中で配列の値を保持したままlengthを増やすのでしょうか?

ご教授よろしくお願いします。
わらび
ベテラン
会議室デビュー日: 2002/08/30
投稿数: 53
投稿日時: 2002-10-15 22:13
vectorかArrayListを使えばいいかと。
takasaki
常連さん
会議室デビュー日: 2002/02/14
投稿数: 31
投稿日時: 2002-10-16 11:47
http://www.y-adagio.com/public/reports/mh_inst/1997/anx_a/jb10.7.htm

によると、

配列のサイズを変更するためには,配列セッタメソッドを使用して新しい
(又は更新された)配列を設定しなければならない。

そうです。ありがとございました。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-10-16 13:09
takasakiさん、
えと、言葉はともかく意味わかっています?
コードとして自分がどうすべきか、想像できています?
takasaki
常連さん
会議室デビュー日: 2002/02/14
投稿数: 31
投稿日時: 2002-10-16 17:29
name = new String[index];
index = 0;
while(rs.next()){
name[index] = rs.getString(1);
index++;
}
hoge.setName(name);

という意味と理解し、実現できました。
Vector、ArrayListで可能というのも了解済です。
言葉が少なかったかもしれません。ありがとうございました。



[ メッセージ編集済み 編集者: takasaki 編集日時 2002-10-16 17:44 ]
1

スキルアップ/キャリアアップ(JOB@IT)