• ベストアンサー

配列で、値の入っている要素数を返すには?

配列abcの長さを取得するには、abc.lengthを使いますよね。 仮にString型の配列abc[20]があったとします。要素数を調べるには、abc.length とすれば、20が返ってきます。 そこで、どこまで、要素が入っているかを調べたい場合、どうするんですか? 例えば、abc[10]まで、要素が入っていて、残りは全部要素が入ってないとします。その時、10を返してくれる、そのようなメソッドはあるんでしょうか? 私がAPIで調べたら、ありませんでした。代表的なアルゴリズムでもいいので、誰か知っている人がいたら教えて下さい。 自分で作ってみたんですが、一般的にはどのようなやり方でやっているのか知りたいので、お願いします。

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

  • ベストアンサー
  • -soh-
  • ベストアンサー率27% (55/201)
回答No.2

こんばんわ~、sohです そーいうメソッドは存在してないと私も記憶してます そういう場合はString配列ではなく動的格納オブジェクトを利用(Vector ArrayList等)を利用するのが一番てっとり早いと思いますが。。。。 アルゴリズムってほどたいしたもんじゃないですけど 通常String abc[] = new String[20]; を書いた時点では abc[0]~abc[19]まではnullで初期化されます。 それを利用して int i; for(i=0; i<20; i++) {   if(abc[i] == null)    break; } System.out.println("有効要素数:"+i); とか もしくは追加メソッドを用意して そっちで要素数を格納しちゃうとか class addString {  String abc[];  int indexNum;  void addStringTest(int Max) {   abc = new String[Max];   indexNum = 0;  }  void addString(String new) {   if( indexNum >= abc.length ) {    System.out.println("add failed."); // or throw Exception    return;   }   abc[indexNum++] = new;  }  int getSize() {   return indexNum;  } } ではどーでしょ? ほいであであ。

kamkamkam3
質問者

お礼

どうもご回答ありがとうございます。ソースコードまで、書いてもらえて大感謝です。 abc[0]~abc[19]まではnullで初期化されます。 ↑やはりそうなんですか。自分でも、迷っていました。下の部分のソースコードのようにやっても面白いですね。専門家の人が、書くと、ソースコードも様になりますね。Javaハ便利ですね。なかなか、クラスの書き方を見るだけでもとても面白いです。 うーん、就職してもこのようなコードは書けるんでしょうか?下の部分のソースコードが特に気に入りました。こんなくだらない質問のソースコードもうまい書き方があるんだな、とつくづく感心してます。面白いので、勉強の糧にさせてもらいます。あー、私もいいコードを早く作れるようになりたいです。どうもありがとうございます。では、またの機会に、宜しくお願いします。

その他の回答 (1)

noname#16216
noname#16216
回答No.1

> 例えば、abc[10]まで、要素が入っていて、残りは全部要素が入ってないとします。 こういう場合、ArrayList か Vector クラスを使うのではないですか? これらのクラスを使えば、size メソッドでどれだけの要素が詰まっているのか 簡単に取得できますし、わざわざString配列のどこまで要素が入っているのかを 調べるメソッドを実装する手間も省けると思いますが。。。

kamkamkam3
質問者

お礼

どうも、大変分かりやすい回答ありがとうございます。sizeメソッドってのがあるんですね。 なにぶん、独学だもんですから、そういうところまで頭が回らないので。。。やはり、聞いてみてよかったです。こちらの方が、やり方が綺麗ですよね。その方法で、やってみます。どうもありがとうございます。 方法を聞かなかったら、おかしなアルゴリズムで配列の要素を調べていたことになっていたと思います。ありがとうございました。大変分かりやすかったです。

関連するQ&A