反转数组中的元素

时间:2017-03-31 03:53:51

标签: java

public static void main(String[] args) {

    int[] HwArray = new int[10];
    for (int i = 0; i < HwArray.length; i++) {
        HwArray[i] = i;
        }

    int count = 0;
    for (int i = 0; i < HwArray.length; i++){
    HwArray[i] = (int) (100 + Math.random() * 100);         

    System.out.print("HwArray[i]=" + HwArray[i]);
            }

        }

    {
        int[] reverse(int[] HwArray); {
            int[] reversed = new int[HwArray.length];
            for (int i=0; i<HwArray.length; i++) {
                reversed[i] = HwArray[HwArray.length - 1 - i];
            }
            return reverse;
        }
    }

}

对不起,我还在学习。我试图扭转所有元素的顺序,但我一直收到错误。我做错了吗?

4 个答案:

答案 0 :(得分:0)

我认为在数组中反转元素顺序的概念上最简单的方法是将大小为ith的数组的前半部分中的每个N元素与N-ith元素交换在下半场:

int[] reversed = new int[10];
for (int i=0; i < HwArray.length/2; ++i) {
    reversed[i] = HwArray[HwArray.length-1-i];
    reversed[HwArray.length-1-i] = HwArray[i];
}

在这里演示:

IDEOne

答案 1 :(得分:0)

有很多错误:

首先,它应该是return reversed而不是return reverse

然后,你不能在方法中定义任何方法(这里,方法反向是在main方法中定义的)

然后,你可以做一件事,删除以下两个大括号: 1:int[] reverse(int[] HwArray)之前的左大括号 2:最后一行的右括号

最后,它应该是int[] reverse(int[] HwArray) {而不是int[] reverse(int[] HwArray); {

答案 2 :(得分:0)

Comparator<Integer> comparator = new Comparator<Integer>() {
    @Override
    public int compare(Integer o1, Integer o2) {
        return o2.compareTo(o1);
    }
};

// option 1
Integer[] array = new Integer[] { 11, 44, 4, 3, 123 };
Arrays.sort(array, comparator);

// option 2
int[] array2 = new int[] {11, 44, 4, 3, 123};
List<Integer>list = Ints.asList(array2);
Collections.sort(list, comparator);
array2 = Ints.toArray(list);

// option 3
List<Integer> integersList = Ints.asList(arr);
Collections.sort(integersList, Collections.reverseOrder());

答案 3 :(得分:0)

说实话,你其实并不遥远。 reverse函数实际上似乎工作正常但你有各种奇怪的语法错误,你甚至没有调用reverse方法。试着这样做:

  1. reverse方法移动到定义了main的类中。如果您想直接从main拨打电话,则必须将其设为静态方法。

  2. 摆脱第17和25行的额外花括号。

  3. 声明reverse时删除第18行的分号。它不应该存在。

  4. reverse方法正在尝试返回名为reverse的变量。这是方法的名称,你不能这样做。我想你想返回reversed

  5. 使用随机数初始化数组后,实际调用reverse方法。然后再次打印出阵列以验证它是否有效。

  6. 请注意,您实际上并没有在第11行打印出数组的值。那应该是System.out.println("HwArray[" + i + "]=" + HwArray[i]);