相关疑难解决方法(0)

如何在Java中反转int数组?

我试图在Java中反转一个int数组.

此方法不会反转数组.

for(int i = 0; i < validData.length; i++)
{
    int temp = validData[i];
    validData[i] = validData[validData.length - i - 1];
    validData[validData.length - i - 1] = temp;
}
Run Code Online (Sandbox Code Playgroud)

这有什么问题?

java arrays idioms idiomatic

224
推荐指数
14
解决办法
51万
查看次数

按降序对基本类型的数组进行排序

我有一大堆原始类型(双).如何按降序对元素进行排序

遗憾的是,Java API不支持使用Comparator对基元类型进行排序.

一种解决方法是排序然后反转:

double[] array = new double[1048576];    
Arrays.stream(array).boxed().sorted(Collections.reverseOrder())…
Run Code Online (Sandbox Code Playgroud)

这很慢 - 特别是如果阵列已经排序得很好.

什么是更好的选择?

java sorting

47
推荐指数
4
解决办法
11万
查看次数

使用java 8功能(stream,lambda等)按降序排序int数组

令人惊讶的是,似乎在java中没有简单的单行解决方案在java 8之前按降序排序int数组.例如,检查这篇文章.现在我们有了java 8,是否有一种优雅,简单,单行的方式使用java 8特性,比如stream和lambda表达式,按降序排序int数组?

编辑
我对解决方案感兴趣int[],而不是Integer[].

编辑
我对仅使用JAVA SE库的解决方案感兴趣.

java java-8

5
推荐指数
2
解决办法
2万
查看次数

按降序排列数组?

我看过比较器和算法,但我对它们没有多大意义.来自java.util.Collections的比较器.所以我选择使用这个:

//return an array in descending order, using set algorithm
    public int[] descendSort()
    {
       int[] tempArray = new int[temps.length];

       for (int i = temps.length-1; i <= 0; --i)  
       {
            tempArray[i] = temps[i];
       }

    return tempArray;
    }         
Run Code Online (Sandbox Code Playgroud)

我在客户端创建的数组是这样的:

int[] temps1 = new int[]{45, 76, 12, 102, 107, 65, 43, 67, 81, 14};
Run Code Online (Sandbox Code Playgroud)

我的输出结果如下:

The temperatures in descending order is:  0 0 0 0 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

为什么????

java arrays loops assign

1
推荐指数
1
解决办法
176
查看次数

标签 统计

java ×4

arrays ×2

assign ×1

idiomatic ×1

idioms ×1

java-8 ×1

loops ×1

sorting ×1