- PR -

オブジェクトの動的確保について

1
投稿者投稿内容
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2003-12-11 13:10
オブジェクトの動的確保について
質問が御座います。

現在、下記のようなNodeクラスのオブジェクトを初期設定で30個作成し
メソッドを読み出しております。

それを30個と限定しないで、動的に確保したいと
考えております。そこで


ArrayListを使用して、プログラムを書き換えようと
思ったのですが、よくわからないところがでてきました。

Node[] listNode = new Node[30];//<---(1)

ArrayList tree = new ArrayList();//<---(2)

listNode[nodeNumber] = new Node();//<---(3)

tree.add(listNode[nodeNumber]);//<---(4)

(1)の部分をコメントアウトすると
(3)でlistNodeの名前解決ができなくなる。

tree.add(New Node());
とするなら、
listNode[nodeNumber].setPresent(nodeNumber);
の部分はどのように記述すればよいのでしょうか。

(3)でインスタンス化しないと、メソッドが呼び出せないのですが。

どなたかご存知の方ご教授御願い致します。


Node[] listNode = new Node[30];

listNode[nodeNumber] = new Node();
listNode[nodeNumber].setPresent(nodeNumber);

public class Node {

private int present;
private Vector next;
//private String value;
private String forwardValue;
private String[][] step_value;


public Node() {

step_value = new String[30][30];
}

/**
* @return
*/
public Vector getNext() {
return next;
}

/**
* @return
*/
public int getPresent() {
return present;
}



/**
* @return
*/
public String getForwardValue() {
return forwardValue;
}
/**
* @return
*/

public String getStep_value(int i,int j) {
return step_value[i][j];
}

/**
* @param vector
*/
public void setNext(Vector vector) {
next = vector;
}

/**
* @param i
*/
public void setPresent(int i) {
present = i;
}



/**
* @param string
*/
public void setForwardValue(String string) {
forwardValue = string;
}



/**
* @param string
*/
public void setStep_value(int i,int j,String string) {
step_value[i][j] = string;
}


}


ぽん
大ベテラン
会議室デビュー日: 2003/05/13
投稿数: 157
投稿日時: 2003-12-11 13:19
新たに質問するより、こちらに回答するのが先かと。
http://www.vc-net.ne.jp/~ytp/bbs/java/bbs17173.html
ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2003-12-11 13:25
質問自体がわかりにくいので(まぁ本人もよくわかってないのでしょうが)、どこで質問しても同じですよ。すでに質問に答えてくれている人がいるのですから、それに返答するうちに自分がどこがわかっていないのかがわかってくるはずです。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2003-12-11 13:43
他の方が適切にアドバイスされていますが、提示されたサンプルコードに限った上で簡潔に。

tree.addNode(new Node(nodeNumber));

どこを付随して変更すべきか、本当にオブジェクトを作った後でなければ得られない情報の場合はどうすべきかは、先の方の回答を参考に、ご自分で考えてください。
同時に、問題の分析方法から身に付けた方がよろしいでしょう。
分析がきちんとできれば、自分で解決できることも自ずから増えてくると思います。
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2003-12-11 13:57
次のAPIドキュメントはご覧になりましたか?また、オブジェクトのキャストについてはご存知ですか?
上記のAPIドキュメントを読み、キャストについて知っていれば、
問題なくListを使うことができると思います。
object
ぬし
会議室デビュー日: 2002/03/20
投稿数: 338
お住まい・勤務地: 香川県高松市
投稿日時: 2003-12-11 14:28
質問の流れを見る限り、「banboo」さんは
http://www.vc-net.ne.jp/~ytp/bbs/java/bbs17173.html
に回答する為に、こちらで新たに質問したのではないでしょうか?

それから、コレクションの概念が無い事が原因の様な気が、私はします。

現に、配列とArrayListを同時に使おうとしていますよね?
つまり、「Node」は「Node」の入物にしか入れられないと思ってる?

「banboo」さん、分からない時は、素直に分からないと言わないと駄目ですよ!
アドバイスしてくれる人も、誰でも完全な人ではないですから、話が先に進まなくなります。

「banboo」さん、コレクションに付いて知っていますか?
1

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