2013-03-29 83 views
0

我正在做一個任務,我想知道是否有一個易於移動數組中的元素。我試圖按字母順序排列作者列表,所以我想比較array [1]和array [2],如果2屬於1,我只想將它移動到那裏。我想通過使用兩個for循環最好的方法來做到這一點。這基本上是我擁有的。有沒有簡單的方法可以在數組j前面移動k?將元素移動到不同元素前面的對象數組中[Java]

for(int j = 0; i > j; j++) { 
      for(int k = 0; k > i; k++) { 
       if(array[j].getAuthor.compareTo(array[k]) == -1) { 
        //move k in front of j 
       } else { 
            //do nothing 
       } 
      } 

     } 

回答

0

你使用Java,所以JDK提供了一種方法適合你。

Arrays.sort(array,new Comparator<Object> { 
     @Override 
     public int compare(final Object pre, final Object next){ 
     //return 0, 1 ,-1 
} 
) 
0

在Java數組上沒有原始的「移動」操作。

你需要做的是重新考慮你的算法,以便它使用你可用的基本操作。這些是*獲取和設置元素在一個特定的偏移量(使用array[i]),並獲得陣列的長度(使用array.length)。

所以,如果你想要把array[i]array[j]前,你需要所有ij之間的所有元素移動到左側或右側使用循環和任務。我會留給你解決細節問題......'因爲很明顯,設定作業的人希望你做什麼。


* - 實際上,有幾個的文庫的方法用於批量複製的數組元素;例如System.arraycopy。但是,我建議您使用循環來實現它,以便您可以更好地理解涉及的內容。

+0

我將無法創建相同類型的臨時對象。將j的所有值分配給臨時對象。將k的所有值分配給j。然後將所有臨時對象值分配給k? –