Карта соответствия деревьев Java
Я пытаюсь распечатать соответствие из текстового файла, и я использую сканер, чтобы прочитать файл ниже, у меня, кажется, есть проблема, помещая слова в список массива
public class Concordance
{
public static void main (String[]args) throws IOException
{
TreeMap <String, ArrayList<Integer>> concordance = new TreeMap <String, ArrayList<Integer>>();
File myfile = new File ("Caesar.txt");
Scanner scan = new Scanner(myfile);
ArrayList <Integer > integer = new ArrayList <Integer>();
for (int i = 0; i < scan.nextLine().length(); i++)
{
String key = scan.nextLine().toLowerCase();
if (scan.nextLine().length(i) > 1)
{
if (concordance.get(key) == null) {
concordance.put(key, 1))
} else {
ArrayList<Integer> value = concordance.get(key).indexOf(integer);
value++;
concordance.put(key, value);
}
}
}
System.out.println(concordance);
}
}
1 ответ
Этот код не может скомпилироваться.
Вы пытаетесь поместить целое число в Map<String, ArrayList<String>>
,
Это строка:
concordance.put(key, 1))
Также эта строка не работает:
value++;
Поскольку значение является коллекцией Integer
, а не целое число.
Эта строка всегда возвращает false во время выполнения:
ArrayList<Integer> value = concordance.get(key).indexOf(integer);
Так как integer
объявлен как ArrayList
, и вы ищете коллекцию Integer.
В общем, у вас большая путаница между Integer
а также ArrayList<Integer>
, Вы также звоните scan.nextLine()
не замечая, что он продвигает строку каждый раз, когда она вызывается.