Карта соответствия деревьев Java - PullRequest
0 голосов
/ 10 ноября 2011

Я пытаюсь распечатать соответствие из текстового файла, и я использую сканер, чтобы прочитать файл ниже. У меня, кажется, есть проблема с помещением слов в список массива

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 Ответ

0 голосов
/ 10 ноября 2011

Этот код не может быть скомпилирован.

Вы пытаетесь поместить целое число в 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(), не замечая, что он РАСШИРЯЕТ линию при каждом ее вызове.

...