申し訳ありませんが、これは間違った質問です。ハッシュマップ:文字列リストに文字列を追加しようとしています
(私は完全に私が行うことになっていたものを誤解しているため、オリジナルのポストのほとんどを削除しました。)
static void learnFromText(Map<List<String>, List<String>> whatComesNext, List<String> text) {
List<String> maurice = new ArrayList<String>();
List <String> wallace = new ArrayList<String>();
List <String> romeo = new ArrayList<String>();
for (int i=0; i<=text.size()-3; i++) {
maurice.clear();
wallace.clear();
maurice.add(text.get(i));
maurice.add(text.get(i+1));
if (whatComesNext.containsKey(maurice)==false)
whatComesNext.put(maurice, romeo);
wallace=whatComesNext.get(maurice);
wallace.add(text.get(i+3));
whatComesNext.put(maurice, wallace);
}
}
すべてのキーは、2つの連続した言葉であり、私は、文字列のリストのキーと文字列のリスト値のマップを持っていますStringリスト "text"キー "text.subList(i、i + 2)"を見つけるたびに、text.get(i + 2)をキーの値に追加する必要があります。
たとえば、
テキストの要素は[A、B、C、D、A、B、E、F]です。
- キー(A、B)の値は(C)です。
- キー(B、C)の値は(D)です。
- キー(C、D)の値は(E)です。
- キー(D、A)の値は(B)です。
- キー(A、B)の値は(C、E)です。
- キー(B、E)の値は(F)です。
コードの問題は何とかそれがwhatComesNextを構築しなければならないテキストのサイズについては、ArrayIndexOutOfBoundsExceptionを返すということです。
ここでは何が間違っているのかを指定せずにコードを投稿しているので、私はこの質問をdownvotedしました。コードが期待すること、期待する理由、実際にやっていること、そしてそれが間違っている理由を期待しています。この情報を含めるためにあなたの質問を編集してください、そして私は私のdownvoteを引っ込めることを検討します。参照してください:[最小、完全、および検証可能な例を作成する方法](http://stackoverflow.com/help/mcve/) –
コードの問題は、何らかの形で、テキストサイズのArrayIndexOutOfBoundsExceptionを返すことですwhatComesNextを作成しています。 – user2709168
私はここに更新して依頼できますか?私は添付のスレッドを読んで、コードに小さなエラーを実現しました。私はOutOfBoundsExceptionを排除しました。問題は、コードがすべての値をnullに設定することです。 – user2709168