Java 数组中的反向元素 publicstaticvoidmain(字符串[]args){ int[]HwArray=新int[10]; 对于(int i=0;i

Java 数组中的反向元素 publicstaticvoidmain(字符串[]args){ int[]HwArray=新int[10]; 对于(int i=0;i,java,Java,我认为从概念上讲,颠倒数组中元素顺序的最简单方法是将大小为N的数组前半部分中的每个ith元素与后半部分中的N-ith元素交换: 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

我认为从概念上讲,颠倒数组中元素顺序的最简单方法是将大小为
N
的数组前半部分中的每个
ith
元素与后半部分中的
N-ith
元素交换:

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;
        }
    }

}
int[]反向=新的int[10];
对于(int i=0;i
此处演示:

有许多错误:

首先,它应该是
反向返回
,而不是
反向返回

然后,您不能在方法中定义任何方法(这里,方法反转是在主方法中定义的)

然后,您可以做一件事,移除以下两个大括号: 1:在
int[]反向(int[]HwArray)
2:最后一行中的右大括号

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

Comparator Comparator=new Comparator(){
@凌驾
公共整数比较(整数o1,整数o2){
返回o2.compareTo(o1);
}
};
//选择1
整数[]数组=新整数[]{11,44,4,3,123};
排序(数组、比较器);
//选择2
int[]array2=新的int[]{11,44,4,3,123};
Listlist=Ints.asList(array2);
集合。排序(列表、比较);
array2=整数到数组(列表);
//选择3
List integersList=Ints.asList(arr);
Collections.sort(integersList,Collections.reverseOrder());

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

  • reverse
    方法移动到定义了
    main
    的类中。如果要直接从
    main
    调用它,必须将其设置为静态方法

  • 去掉第17行和第25行多余的花括号

  • 声明
    reverse
    时,请删除第18行的分号。分号不应该在那里

  • reverse
    方法试图返回一个名为
    reverse
    的变量。这是该方法的名称,您不能这样做。我想您的意思是返回
    reversed

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

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


  • 这段代码到处都是错误。它是否编译?“我一直收到一个错误”什么错误?编译错误,因为最后一行应该是
    return reverse;
    ,而不是
    return reverse;
    ?其他东西?不。我得到编译错误。
    int[]reverse(int[]HwArray);{
    -那不行代码有语法和编译错误非常感谢!
    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];
    }
    
    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());