죄송합니다. 이것이 바보 같은 질문 인 경우, 나는지도 작업을 처음 접했습니다. Hashmaps : String List에 문자열을 추가하려고 시도했습니다.
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);
}
}
(I 완전히 내가 어떻게해야 무슨 오해 때문에 원래의 게시물의 대부분을 제거.)
나는 모든 키에 두 개의 연속 된 단어입니다 문자열 목록 키와 문자열 목록 값의지도를 가지고 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를 반환한다는 것입니다.
나는이 문제에 대해 잘못된 점을 지정하지 않고 여기에 코드를 게시 했으므로이 질문을 취소했습니다. 우리는 코드가 기대하는 바가 무엇인지, 왜 그렇게 할 것이라고 기대하는지, 실제로 무엇을하는지, 그리고 왜 잘못되었는지를 예상합니다. 제발이 정보를 포함하도록 질문을 편집 한 다음, 내 downvote를 철회하는 것을 고려할 것입니다. 참고 : [최소한의 완전하고 검증 가능한 예제를 만드는 방법] –
코드 문제는 어떻게 든 텍스트의 크기에 대해 ArrayIndexOutOfBoundsException을 반환한다는 것입니다. whatComesNext를 생성해야합니다. – user2709168
업데이트를 요청하고 계속 요청할 수 있습니까? 첨부 된 스레드를 읽고 코드에서 작은 오류가 발생했습니다. OutOfBoundsException을 제거 했으므로 이제는 코드가 모든 값을 null로 설정합니다. – user2709168