[英]Reversing elements in Arrays
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;
}
}
}
抱歉,我还在学习。 我试图颠倒所有元素的顺序,但我一直收到错误消息。 难道我做错了什么?
我认为,从概念上讲,颠倒数组中元素顺序的最简单方法是将大小为N
的数组的前一半中的每个ith
元素与后一半中的第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];
}
演示在这里:
有很多错误:
首先,应将它return reversed
而不是return reverse
。
然后,您将无法在方法内部定义任何方法(此处,在主方法内部定义了方法反向)
然后,您可以做一件事,删除以下两个花括号:1:刚好在int[] reverse(int[] HwArray)
括号2:在最后一行的结尾花括号
最后,应该是int[] reverse(int[] HwArray) {
int[] reverse(int[] HwArray); {
int[] reverse(int[] HwArray); {
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());
老实说,您实际上离我们并不遥远。 reverse
函数实际上似乎可以正常工作,但是您会遇到各种奇怪的语法错误,甚至没有调用reverse
方法。 尝试这样做:
将reverse
方法移到定义main
的类内。 如果要直接从main
调用它,则必须使其成为静态方法。
摆脱第17和25行上多余的花括号。
声明reverse
时,请删除第18行的分号。 它不应该在那里。
reverse
方法试图返回一个名为reverse
的变量。 这就是方法的名称,您不能这样做。 我想你的意思是要reversed
。
用随机数初始化数组后,实际上调用reverse
方法。 然后再次打印出阵列以验证其是否有效。
注意,实际上并没有在第11行上打印出数组的值。应该是System.out.println("HwArray[" + i + "]=" + HwArray[i]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.