Базовая Java-программа не может найти ошибку символа

Мне нужна помощь с этой основной программой. Мой друг дал мне большую часть этого кода, но не операторы импорта. К концу, где говорится list.add(finalCombined.get(counter3));, это дает мне ошибку. Я получаю ошибку

Cannot find Symbol 
Symbol: variable list
location: class ArrayUtils

Я очень смущен этим. Я добавил, какие утверждения импорта, я думаю, мне нужно. Спасибо

import java.util.ArrayList;
import java.util.Random;
import java.util.Collections;
import java.lang.String;

public class ArrayUtils {
    public void randomStrings(ArrayList<String> arrayList,int nbrOfStrings,int vowelCnt, int strSize){
        ArrayList <String> finalCombined = new ArrayList();
        ArrayList <String> finalCombined = new ArrayList();
        for (int cnt = 0; cnt < nbrOfStrings; cnt++)
        {
            int cnt2 = 0;
            int gn, size, vowelUsed;
            Random n1 = new Random();
            size = 122-96;
            //char cs[] = new char[strSize];
            //String cs;
            //cs = "";
            ArrayList <Character> cs = new ArrayList();
            int counter = 0;
            vowelUsed = 0;

            while (counter < 1)
            {
                vowelUsed = n1.nextInt(vowelCnt + 1);
                if (vowelUsed == 0)
                {
                }
                else
                {
                    counter = 2;
                }

            }

            while (cnt2 < (strSize - vowelUsed))
            {
                gn = n1.nextInt(size) + 97;

                if (gn == 97 | gn == 101 | gn == 105 | gn == 111 | gn == 117 | gn == 121)
                {
                }

                else
                {
                    cs.add((char)gn);
                    //cs += ((char)gn + "");
                    cnt2 ++;
                }
            }
            while (cnt2 < strSize)
            {
                gn = n1.nextInt(size) + 97;
                if (gn == 97 | gn == 101 | gn == 105 | gn == 111 | gn == 117 | gn == 121)
                {
                    cs.add((char)gn);
                    //cs += ((char)gn + "");
                    cnt2 ++;
                }
            }
            //int check;
            //check = list.add(cs[cnt]);
            Collections.shuffle(cs);

            String combined;
            combined = "";
            //System.out.println(cs);

            int counter2 = 0;
            while (counter2 < strSize)
            {
                combined += cs.get(counter2); 
                counter2 ++;
            }
            finalCombined.add(combined);
            counter2 = 0;
            combined = "";

        } // end # strings    

        for (int counter3 = 0; counter3 < nbrOfStrings; counter3++)
        {
            list.add(finalCombined.get(counter3));
        }

    } // end method
}

4 ответа

list.add(finalCombined.get(counter3));

Вы не объявили ни одной переменной с именем listпоэтому эта строка не может пройти компиляцию.

Возможно, вы имели в виду

arrayList.add(finalCombined.get(counter3));

так как ваш randomStrings у метода есть аргумент arrayList что вы не используете вообще.

Вы не определили переменную с именем list, Однако вы объявили список массивов finalCombined с одним и тем же именем дважды. Одно имя переменной должно быть изменено как list, Также вы должны вызвать метод через main метод, как показано ниже.

new ArrayUtils().randomStrings(new ArrayList<String>(), 6, 3, 3);

Я просто брожу, какова цель параметра arrayList в методе randomStrings, Этот метод не используется в методе randomStrings,

Ваш вывод выглядит как ниже:

[aeo]
[aeo, yii]
[aeo, yii, isu]
[aeo, yii, isu, aea]
[aeo, yii, isu, aea, aaa]
[aeo, yii, isu, aea, aaa, iek]

Всегда объявляйте переменные правильно и разумно, что помогает вашему коду быть более читабельным и понятным. Это означает, что вы фактически уменьшаете нагрузку на компилятор;)

Небольшое предложение: используйте IDE при кодировании, что может помочь вам в таких ошибках времени компиляции. Более того, они так дружелюбны, предлагая решения и оптимизируя код.

Я думаю, тебе нужно изменить list в arrayList в соответствии

list.add(finalCombined.get(counter3));

так как list не объявлено где-либо в вашем коде и arrayList не был использован.

Другие вопросы по тегам