配列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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
家の中でのこだわりスペースはどこですか?
自分の家で快適に過ごすために工夫しているスペースはありますか? 例)ベランダでお茶を飲むためのカフェテーブル ゲーミングに特化したこだわりのPCスペース
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
昨日見た夢を教えて下さい
たまにすごいドラマチックな夢見ること、ありませんか? 起きてからも妙に記憶に残っているような、そんな夢。
-
高校三年生の合唱祭で何を歌いましたか?
大人になると大人数で合唱する機会ってないですよね。 思い出すと、高校三年生の合唱祭が最後でした。 そこで、みんなの思い出の合唱曲を知りたい!
-
配列でデータが入っている要素を求める方法
Visual Basic(VBA)
-
スクリプトのエラー「unexpected EOF while looking for matching `'」の解決法は?"
UNIX・Linux
-
配列にnullを代入すると、nullが文字列として出力されるんですが何故ですか? int a[] =
Java
-
-
4
自分の部署・担当を言うとき、どういう言い方が正しいでしょうか?? 会社のときは、弊社といいますが、部
その他(ビジネス・キャリア)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java配列の問題を教えてくださ...
-
java
-
エラーのStackTraceをString変...
-
C#で動的配列Listの中身をListB...
-
配列をセッションに割り当てた後で
-
C言語でunsigned char配列を連...
-
hiddenの値が期待した値で取得...
-
大量のデータを読み込んで表示...
-
パソコンキーボードで時分秒を...
-
VBAで配列の計算
-
C#の質問
-
JAVAのfor文で困っています。
-
Java 入力した整数値の合計を、...
-
ORA-01858: 数値を指定する箇所...
-
変数を動的に作るには?
-
演算子 ^ は double,double に...
-
ダブルクォーテーションのrepla...
-
1~100までの数字を表示し、か...
-
java プログラミングについて
-
iPhoneでのjavascriptで音を出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javaで文字と数字が混ざったも...
-
[Ljava.lang.Stringってなんですか
-
main(String[] args) の args...
-
この警告はどうすれば?
-
【C#】ハッシュテーブル(連想...
-
javamailで複数人にメールを送...
-
jspでの二次元配列
-
配列をセッションに割り当てた後で
-
同じ配列またはクラスを、2回...
-
java
-
Javaで文字を漢字であるか否か...
-
csvファイルを2次元配列に格納
-
配列の中に複数存在する数がい...
-
配列で、値の入っている要素数...
-
JavaのBase64デコードで正しく...
-
C言語でunsigned char配列を連...
-
C#で動的配列Listの中身をListB...
-
【Ajax通信&Java】配列の受け取...
-
javaについて
-
javaでEUC-JP文字列→UTF-8への変換
おすすめ情報