
配列abcの長さを取得するには、abc.lengthを使いますよね。
仮にString型の配列abc[20]があったとします。要素数を調べるには、abc.length とすれば、20が返ってきます。
そこで、どこまで、要素が入っているかを調べたい場合、どうするんですか?
例えば、abc[10]まで、要素が入っていて、残りは全部要素が入ってないとします。その時、10を返してくれる、そのようなメソッドはあるんでしょうか?
私がAPIで調べたら、ありませんでした。代表的なアルゴリズムでもいいので、誰か知っている人がいたら教えて下さい。
自分で作ってみたんですが、一般的にはどのようなやり方でやっているのか知りたいので、お願いします。
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;
}
}
ではどーでしょ?
ほいであであ。
どうもご回答ありがとうございます。ソースコードまで、書いてもらえて大感謝です。
abc[0]~abc[19]まではnullで初期化されます。
↑やはりそうなんですか。自分でも、迷っていました。下の部分のソースコードのようにやっても面白いですね。専門家の人が、書くと、ソースコードも様になりますね。Javaハ便利ですね。なかなか、クラスの書き方を見るだけでもとても面白いです。
うーん、就職してもこのようなコードは書けるんでしょうか?下の部分のソースコードが特に気に入りました。こんなくだらない質問のソースコードもうまい書き方があるんだな、とつくづく感心してます。面白いので、勉強の糧にさせてもらいます。あー、私もいいコードを早く作れるようになりたいです。どうもありがとうございます。では、またの機会に、宜しくお願いします。
No.1
- 回答日時:
> 例えば、abc[10]まで、要素が入っていて、残りは全部要素が入ってないとします。
こういう場合、ArrayList か Vector クラスを使うのではないですか?
これらのクラスを使えば、size メソッドでどれだけの要素が詰まっているのか
簡単に取得できますし、わざわざString配列のどこまで要素が入っているのかを
調べるメソッドを実装する手間も省けると思いますが。。。
どうも、大変分かりやすい回答ありがとうございます。sizeメソッドってのがあるんですね。
なにぶん、独学だもんですから、そういうところまで頭が回らないので。。。やはり、聞いてみてよかったです。こちらの方が、やり方が綺麗ですよね。その方法で、やってみます。どうもありがとうございます。
方法を聞かなかったら、おかしなアルゴリズムで配列の要素を調べていたことになっていたと思います。ありがとうございました。大変分かりやすかったです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 列の複数ある空白セルを飛ばして、セルに並べて表示したい 3 2023/02/12 16:49
- Excel(エクセル) Excelの関数で実現可能か知りたいです 5 2023/08/06 08:58
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Visual Basic(VBA) Vba 配列の中の特定文字列の位置の調べ方 9 2022/05/23 17:46
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- JavaScript 配列の1要素を代入した変数を使って元の配列要素を削除できるか 1 2023/07/28 03:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaで文字と数字が混ざったも...
-
配列で、値の入っている要素数...
-
この警告はどうすれば?
-
[Ljava.lang.Stringってなんですか
-
配列の中に複数存在する数がい...
-
エラーのStackTraceをString変...
-
ファイルからデータをうまく読...
-
同じ配列またはクラスを、2回...
-
forループの評価(条件)式につ...
-
セッションを使ったint型の値の...
-
Vectorから一部分を取り出す方...
-
C#で動的配列Listの中身をListB...
-
動的配列確保
-
java
-
javaでEUC-JP文字列→UTF-8への変換
-
『args[]』とは?
-
キャストの仕方?
-
JavaのCalendarのMONTHはなぜ0...
-
配列を使ってカレンダーを表示...
-
JSPでデータ一覧表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
この警告はどうすれば?
-
[Ljava.lang.Stringってなんですか
-
配列で、値の入っている要素数...
-
Javaで文字と数字が混ざったも...
-
同じ配列またはクラスを、2回...
-
C#で動的配列Listの中身をListB...
-
【Ajax通信&Java】配列の受け取...
-
javamailで複数人にメールを送...
-
【C#】ハッシュテーブル(連想...
-
java StringとString[]の違い
-
jspでの二次元配列
-
配列の中に複数存在する数がい...
-
cloneメソッドについて (java)
-
セッションを使ったint型の値の...
-
C言語でunsigned char配列を連...
-
javaでEUC-JP文字列→UTF-8への変換
-
csvファイルを2次元配列に格納
-
Generics で型チェック
-
MAPの配列・・・???!!!
-
2次元配列でのiとjについて。
おすすめ情報