[英]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.