【问题标题】:Please help I can not see the error [duplicate]请帮助我看不到错误[重复]
【发布时间】:2018-03-09 05:21:44
【问题描述】:

我正在使用 Intellj Idea,我正在使用 ArrayLists、Arrays 和排序算法,我想生成 5 个随机等级,将它们放入 ArrayList 中,将 ArrayList 的值转换为 Array。将数组值从最小到最大排序并打印以筛选排序前后的成绩,这就是我所拥有的:

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.Arrays;


    public class Grades {




    public static void main(String args[])
{
    ArrayList <Integer> scores = new ArrayList<Integer>();

    for(int i = 0; i < 5; i++)
    {

        scores.add((int) (Math.random() * 30 + 1));
    }
    for (int i =0; i < scores.size();i++)
    {
        System.out.println(scores.get(i));
    }
    int arrayOne[] = new int[scores.size()];
    arrayOne = scores.toArray(new int[scores.size()]);

最后一行是我遇到问题的地方。 Intellij 说:没有找到适合 toArray(int[]) 的方法。

我的语法错了吗?

我忘记导入库了吗?

ArrayLists 和 Arrays 可以这样交互吗?

请帮忙。

    int first,second, temp=0;

    for(first=0; first < arrayOne.length -1; first++)
    {
        for (second = 0; second < arrayOne.length - 1 - first; second++)
        {
            if(arrayOne[second] < arrayOne[second +1])
            {
                temp = arrayOne[second];
                arrayOne[second] = arrayOne[second + 1];
                arrayOne[second+1] = temp;
            }
        }
    }

我还不能运行这个位,看看它是否也按照我想要的方式排序。

    for(int i = 0; i < arrayOne.length; i++)
    {
        System.out.println(arrayOne[i]);
    }


}

}

【问题讨论】:

    标签: java arrays intellij-idea arraylist toarray


    【解决方案1】:

    toArray(T[]) 合约可以看出,它接受一个包含引用类型的数组,而int 不是引用类型。

    将您的代码更改为 arrayOne 的类型为 Integer[]

    Integer[] arrayOne = scores.toArray(new Integer[scores.size()]);
    

    【讨论】:

    • 感谢您解决了这个问题。还有一个问题,我怎么知道什么时候使用'int'和什么时候使用'Integer'?
    • Google for java 原始包装器和自动装箱,您可以获得很多想法/帮助。
    • 会的!谢谢!
    猜你喜欢
    • 2023-04-10
    • 2021-10-24
    • 2017-07-22
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    相关资源
    最近更新 更多