使用ArrayLists的java错误 - 不会编译

时间:2013-04-14 22:42:06

标签: java arrays arraylist

以下是我必须做的事情:

  

编写一个采用Integer对象的ArrayList并返回的方法   一个相同大小的Character对象的ArrayList。归来了   Arryalist的元素被指定为相应的字母等级   ArrayList的相同索引元素的整数等级   参数。 (A如果90或以上,......,F,如果小于60)。包括   代码来测试你的方法。

这就是我所拥有的:

package returninggrade;

import java.util.ArrayList;

public class ReturningGrade {

    public static ArrayList main(String[] args) {
        ArrayList<Character> getEquivalen (ArrayList < Integer > mark) {
            ArrayList<Character> cArray = new ArrayList<Character>();      // create ArrayListr to return

            // loop throught Int arrayList
            for (int i = 0; i < mark.size(); i++) {
                // extract value
                int value = mark.get(i);
                // convert value to char
                if (value > 90) {
                    cArray.add(new Character('A'));
                } else if (value > 80) {
                    cArray.add(new Character('B'));
                } else if (value > 70) {
                    cArray.add(new Character('C'));
                } else if (value > 60) {
                    cArray.add(new Character('D'));
                } else {
                    cArray.add(new Character('E'));
                }
            }
            // return ArrayList of Char
            return cArray;
        }
    }
}

这是我收到错误的地方,我被困住了:

ArrayList<Character> getEquivalen(ArrayList<Integer> mark)

NetBeans给出的建议是“;”是预期的,但是当我添加它时,我得到了同样的错误。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

您正在尝试在main()内定义方法。你不能这样做。您main的签名也不正确 - 必须public static void main(String[] foo)foo是变量名称;通常它是args,但它可以成为你喜欢的任何东西。

提取您的方法并在 main之前将其声明为

ArrayList<Character> getEquivalen (ArrayList < Integer > mark) {
    ArrayList<Character> cArray = new ArrayList<Character>();      // create ArrayListr to return

    // loop throught Int arrayList
    for (int i = 0; i < mark.size(); i++) {
        // extract value
        int value = mark.get(i);
        // convert value to char
        if (value > 90) {
            cArray.add(new Character('A'));
        } else if (value > 80) {
            cArray.add(new Character('B'));
        } else if (value > 70) {
            cArray.add(new Character('C'));
        } else if (value > 60) {
            cArray.add(new Character('D'));
        } else {
            cArray.add(new Character('E'));
        }
    }
    // return ArrayList of Char
    return cArray;
}

然后,在main中调用它:

public static void main(String[] args) {
    ReturningGrade rg = new ReturningGrade();
    rg.getEquivalen(new ArrayList<Integer>());  // you have to provide the ArrayList here
}