2017-05-05 170 views
2

我想将整数数组转换为长整型数组,但我不知道如何去做这件事。将整数数组转换为长整型

到目前为止,我的代码看起来是这样的:

import java.util.Random; 

public class main { 

public static int[] sect(){ 
    int[] returned = new int[4]; 
    Random rand = new Random(); 
    returned[0] = 4; 
    returned[1] = rand.nextInt(8) + 1; 
    returned[2] = rand.nextInt(7) + 1; 
    returned[3] = rand.nextInt(6) + 1; 

    return returned; 
} 

public static String num(){ 
    for (int j = 0; j < 4; j++) { 
     int[] ints = sect(); 
     for(int i =0; i < ints.length; i++) { 
      System.out.print(ints[i]); 
     } 
    } 
    return null; 
} 
} 

我试图做这样的事情:

return ((long)num()); 

但是,这永远不会奏效。有谁知道我会如何去做这件事?

+1

你不能投基元的数组到一个原始。你想对'int'做什么操作来将它们转换成'long'? –

+2

如果你需要一个长阵列定义一个.... –

+0

好的,我会尝试。谢谢 –

回答

1

您使用Java 8,如果是的话这将工作:

int[] arrayOfIntegers = {1, 2, 3, 4, 5, 6}; 

long[] arrayOfLongs = Arrays.stream(arrayOfIntegers).mapToLong(i -> i).toArray(); 
+0

https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html#asLongStream-- – shmosel

+0

@GhostCat我不认为你可以使用'System.arraycopy()'使用不同的数组类型。 – shmosel

0

你不能那样做。

您只需创建一个相等大小的数组,然后将int值复制到该数组中。不幸的是,System.arraycopy()不能为你做...所以你不能避免在这里手动复制。因为int数组不是long数组。因此,从单一的整数到单独的整数都没有这样的演员。