【问题标题】:Convert long array to int array in Java在Java中将long数组转换为int数组
【发布时间】:2020-03-24 17:53:44
【问题描述】:

我刚开始使用java,无法将long 数组类型转换为int 数组。你能给我一个建议我该怎么做吗? 谢谢!

public class Main {
    public static void main(String[] args) {
        long[] numbers;
        numbers = sorting(new long[]{5, 21, 19, 55, 94, 73, 69, 100,});



    }

    public static long[] sorting(long [] numbers) {

        for (long num : numbers) {
            long j = 0;
            for (int i = 0; i < numbers.length - 1; i++) {
                if (numbers[i] > numbers[i + 1]) {
                    j = numbers[i];
                    numbers[i] = numbers[i + 1];
                    numbers[i + 1] = j;


                }
            }
            System.out.println(num + ",");
        }
        return (numbers); 

【问题讨论】:

  • 是否要将long 数组转换为int 数组?

标签: java arrays types int long-integer


【解决方案1】:

有一个类似的问题 convert-an-int-array-to-long-array-using-java-8

你可以试试这个:

    long[] longArray = {1, 2, 3};
    int[] intArray = Arrays.stream(longArray).mapToInt(i -> (int) i).toArray();

【讨论】:

  • 是的,但这不起作用,因为我需要先转换为int。
【解决方案2】:

要将 long[] 转换为 int[],您需要遍历 long[] 数组,将每个单独的数字转换为 int 并将其放入 int[] 数组。

// Your result
long[] numbers = sorting(new long[] {5, 21, 19, 55, 94, 73, 69, 100});

// Define a new int array with the same length of your result array
int[] intNumbers = new int[numbers.length];

// Loop through all the result numbers
for(int i = 0; i < numbers.length; i++)
{
    // Cast to int and put it to the int array
    intNumbers[i] = (int) numbers[i];
}

或者您也可以使用 Java Streams (>= 1.8) 以获得更短的版本:

int[] intArray = Arrays.stream(numbers).mapToInt(i -&gt; (int) i).toArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2011-10-16
    • 2012-12-30
    • 1970-01-01
    相关资源
    最近更新 更多