私はアンドロイド向けのアプリを作っています。私はユーザーがちょうど木琴で演奏した曲を推測しようとしています。私が持っている:private List<String> mDespacito = new ArrayList<String>(Arrays.asList("f", "a","d","d"));
とprivate List<String> mPlayed = new ArrayList<String>();
ユーザーは木琴の一つのキーを押すと、私はこのように、彼はmPlayedのArrayListに押されたキーを追加します。今すぐJava 1人のarraylistが別のものの一部になっています
public void playD(View v){
Log.d("Xylophone", "Played D!");
mSoundPool.play(mDSoundId,LEFT_VOLUME,RIGHT_VOLUME,PRIORITY,NO_LOOP,NORMAL_PLAY_RATE);
mPlayed.add("d");
CheckForSong();
}
、CheckForSongが含まれています
public void CheckForSong(){
if (mPlayed.containsAll(mDespacito)){
Log.d("Xylophone","You just played despacito");
mPlayed.removeAll(mDespacito);
}
}
played F
played A
played D
played D
You just played despacito
をしかし、それはありません:
だから、それは実行する必要があります。
played F
played A
played D
You just played despacito
played D
そして、あなたも行うことができます。
played F
played G
played A
played G
played D
You just played despacito
をなぜ私が知っている:mDespacitoの要素がmPlayedである場合にだけチェックするためif (mPlayed.containsAll(mDespacito))
の。しかし、私はmDespacitoのすべての要素が含まれているかどうか(2回あるものを含む)が正しい順序であるかどうかを確認する必要があります。私が使用できるようなコマンドはありますか?おかげ
'Collections.indexOfSubList'はあなたを助けるかもしれません! –
個々のノートを文字列に連結して文字列にすると、その順序を考慮した 'String.contains()'を使うことができます。 –