2017-04-26 70 views
-1
public boolean remove(int x) { 
    int i; 
    for (i = 0; (i < size) && (x != array[i]); i++) { 
     if (i == size) { 
      return false; 
     } else { 
      size--; 
      array[i] = array[size]; 
      return true; 
     } 
    } 
} 

對不起,這不是很漂亮。我正在平板電腦上輸入此信息。這是正確的,但在實施後排序。有人可以向我解釋爲什麼這是嗎?

+3

什麼是你想達到什麼目的? – Oswald

+0

它將刪除數組的最後一項,並將其插入,而不是刪除該數組。這不是你想要的嗎? –

回答

0

如果你問爲什麼陣列remove後整理被稱爲那麼答案是:它不是:

public class Remove { 

    private final int[] array = new int[10]; 
    private int size = 0; 

    public Remove(int... elements) { 
     for (int el: elements) 
      array[size++] = el; 
    } 

    public boolean remove(int x) { 
     int i; 
     for (i = 0; (i < size) && (x != array[i]); i++) 
      ; 
     if (i == size) { 
      return false; 
     } else { 
      size--; 
      array[i] = array[size]; 
      return true; 
     } 
    } 

    public String toString() { 
     return Arrays.toString(Arrays.copyOf(array, size)); 
    } 

    public static void main(String[] args) { 
     Random random = new Random(); 
     Remove remove = new Remove(random.ints(8, 1, 1000).toArray()); 
     System.out.println(remove); 
     remove.remove(remove.array[3]); 
     System.out.println(remove); 
    } 
} 

結果:

[515, 621, 343, 883, 463, 745, 966, 70] 
[515, 621, 343, 70, 463, 745, 966] 
相關問題