Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将列表转换为int数组_Java_Arrays_List_Shuffle - Fatal编程技术网

Java 将列表转换为int数组

Java 将列表转换为int数组,java,arrays,list,shuffle,Java,Arrays,List,Shuffle,我想得到整型的洗牌数组,所以我写了这段代码,但它不起作用。。。在这段代码中,我希望Scase类的每个对象每次都有新的值。。。但那必须从5,50100开始 class Scase { int label; int value; public static int arr[] = {5,50,100}; public static int[] toarr(List<Integer> list) { int[] ret = ne

我想得到整型的洗牌数组,所以我写了这段代码,但它不起作用。。。在这段代码中,我希望Scase类的每个对象每次都有新的值。。。但那必须从5,50100开始

class Scase {

    int label;
    int value;

    public static int arr[] = {5,50,100};

    public static int[] toarr(List<Integer> list)
    {
        int[] ret = new int[list.size()];
        for (int i = 0; i < ret.length; i++)
            ret[i] = list.get(i);
        return ret;
    }

    public static void main(String args[])
    {
        Scase obj[] = new Scase[1];
        List<Integer> lst = new ArrayList<Integer>();

        lst = Arrays.asList(arr);

        Collections.shuffle(lst);

        int ar[];
        ar = toarr(lst);

        for(int i = 0; i <= 2; i++) {
            obj[i].value = ar[i];
        }
        System.out.println(obj[0].label + "  " + obj[0].value);
        System.out.println(obj[1].label + "  " + obj[1].value);
        System.out.println(obj[2].label + "  " + obj[2].value);
    }
}
class-Scase{
int标签;
int值;
公共静态int arr[]={5,50100};
公共静态int[]toarr(列表)
{
int[]ret=new int[list.size()];
对于(int i=0;i对于(int i=0;i不幸的是,由于Java处理基元类型、装箱、数组和泛型的本质,我认为没有更好的方法来实现这一点。特别是:

List.toArray
不起作用,因为没有从整数到
int的转换
您不能使用
int
作为泛型的类型参数,因此它必须是一个特定于int的方法(或者使用反射来进行肮脏的欺骗)。 我相信有些库会为所有的基元类型自动生成这种方法的版本(即,每个类型都有一个复制的模板)。这很难看,但恐怕就是这样:(


即使Arrays类是在泛型进入Java之前出现的,但如果它是在今天引入的(假设您想使用基元数组),它仍然必须包含所有可怕的重载。

请添加一个指示该语言的标记(C#?Java?…)您正在使用。另外,这是关于列表数组转换还是关于洗牌?您可能需要修改您的问题标题。