- U1
- 会議室デビュー日: 2002/02/01
- 投稿数: 11
|
投稿日時: 2002-02-06 20:47
はじめましてU1といいます。
今vectorを使っていろいろな処理をしようとしているのですが
vectorを引数として別なクラスをコンストラクタするときに渡して
別なクラスのクラス変数に格納したいのですが
そのときは以下のような形でできますでしょうか?
またメソッドとしてiという引数を渡されて
vectorのi番目の要素をint型として返すというような処理も
しようとしているのですが
あのif文のような比較はできますでしょうか?
もしできましたらアドバイスのほうよろしくお願いいたします。
public class abc {
Vector NGFlag = new Vector();
int i;
public abc(Vector vec){
this.vector = vec; /*引数で持ってきたvectorを格納する。*/
}
public int Cnt(i) {
if((int)vector.elementAt(i) == -1)
return (int)vector.elementAt(i) -1;
else return (int)vector.elementAt(i);
}
}
|
- H2
- ぬし
- 会議室デビュー日: 2001/09/06
- 投稿数: 586
- お住まい・勤務地: 港
|
投稿日時: 2002-02-06 23:32
| コード: |
|
00: public class abc { //基本的にクラス名の一文字目は大文字にする
01: Vector NGFlag = new Vector(); //コンストラクタで初期化するのでnew Vector)は必要ありません。さらに、変数の一文字目は小文字にするのが行儀の良い書き方。
02: int i; //こういう変数はグローバル変数にしないほうが良い。またもっと分かり易い名前にしましょう。
03:
04: public abc(Vector vec) {
05: this.vector = vec; //this.vectorではなくthis.NGFlagでは?
06: }
07:
08: public int Cnt(i) { //メソッドの名前の一文字目は小文字が行儀の良い書き方。あと、iの型は何?int? double? float? Object?
09: if((int)vector.elementAt(i) == -1) //Vectorの中に格納したものはオブジェクトでないといけません。したがってプリミティブなint型へキャストはできません。かわりに、Integerを格納すとよい。
10: return (int)vector.elementAt(i) -1;
11: else
12: return (int)vector.elementAt(i);
13: }
14:}
|
| 引用: |
|
今vectorを使っていろいろな処理をしようとしているのですが
vectorを引数として別なクラスをコンストラクタするときに渡して
別なクラスのクラス変数に格納したいのですが
そのときは以下のような形でできますでしょうか?
|
できます。
| 引用: |
|
vectorのi番目の要素をint型として返すというような処理も
しようとしているのですが
あのif文のような比較はできますでしょうか?
|
できますが、int型としてはできません。
|
- H2
- ぬし
- 会議室デビュー日: 2001/09/06
- 投稿数: 586
- お住まい・勤務地: 港
|
投稿日時: 2002-02-06 23:41
横長になってしまい、すみません。コメントをつけたかったので・・・。
Vectorはオブジェクトでないと格納できないので、int型の要素を取り扱うときにはIntegerオブジェクトを使うといいですよ。
| コード: |
|
public class VectorTest {
Vector integerVec;
public VectorTest() {
integerVec = new Vector();
}
public void addInteger(int i) {
integerVec.add( new Integer(i) );
}
public int getIntegerAt(int index) {
return ((Integer)integerVec.elementAt(index)).toInt();
}
}
|
そらで書いたので多少間違いがあるかもしれませんが(特に例外処理では)、基本的にこんな使い方をします。Vectorは便利なので覚えておくとべんりですよ。
|
- U1
- 会議室デビュー日: 2002/02/01
- 投稿数: 11
|
投稿日時: 2002-02-07 17:35
返信ありがとうございました。
間違いばかりですみません。
vector型はオブジェクトでしか扱えないんですね。
マニュアルを読んでみたところ、
vector.elementAt(i) のiの部分はint型とかいてあったので
あれでいいのかって思っていたので。
どうもありがとうございました。
|