2016-04-13 19 views
0

ベクトル上で、指定された文字または数字で始まるインデックスの数を見つけようとしています。与えられた文字/数字で始まるベクトル内の要素

私はvector.indexOf("A");vector.lastIndexOf("A");を試しましたが、もちろん、 "A"だけしか持たないポジションを見つけようとしているので、私がしようとしているものは "無駄"です。

これを行うためのJavaメソッドがあるかどうか、それとも「自分で」行う必要があるかどうかを知りたかったのですが、もしそうなら、ハウツープロセスに関する少しの指導に感謝するでしょう。

+1

ループを使用します。または、Java 8を使用している場合は、ストリーム。 Vectorはもはや使用すべきではなく、それは15年間真実であったことに注意してください。 ArrayListを使用します。 –

答えて

1

あなたがしたい(または缶)ストリームやラムダを使用しない場合にも、ここで、この小さなループを使用することができます:それはA、その後はカウントで始まる場合

int count=0; 
    for (int i = 0; i < vec.size(); i++) { 
     count = vec.get(i).charAt(0)=='A' ? count+1 : count; 
    } 

ない大きなもの、単に各要素をチェックしますアップ。

+0

素敵でシンプルなので、私のコードに合わせて調整する必要がありましたが、より良い解決策は考えられません。ありがとう@Jankapunkt –

1

Java8では、filter()およびcount()などの機能スタイルの操作にアクセスするために、Streamsを使用できます。 stream()メソッドを使用して、コレクションのストリームを取得します。

+0

私はそれらをチェックアウトします。Julienの情報に感謝します。悲しいことに私は1つの質問しか受け入れることができない、あるいは私はあなたにそれを与えるだろう。 –

+0

@ this.user3272243それは私が推測するコードを投稿しないよう教えてくれます。 :pとにかくJava 8のストリームやその他の機能を確認してください。このバージョンでは言語が大幅に改善されていますので、使用しないのは残念です。 –

関連する問題