2016-04-22 189 views
0

所以我有一個分隔的文件,我讀入一個數組。對兩個對象的數組排序

數組[0]是boxID(雙)

陣列[1]是movieID(雙)

我不知道我怎麼會能夠整理我的由這兩個雙打排列。任何意見?我試着在這個網站上查看其他問題,但我只是被他們弄糊塗了。我目前在我的第一個編程課上。

Movies[] newMasterMovies = new Movies[200]; 

    int newMasterCount = 0; 
    int masterCount = 0; 
    int updateCount = 0; 

    while (updateCount < updateTotalCounter || masterCount < masterTotalCounter) { 

     String updateCompare = updateMovies[updateCount].getBoxID() + updateMovies[updateCount].getMovieID(); 
     String masterCompare = masterMovies[masterCount].getBoxID() + masterMovies[masterCount].getMovieID(); 
     int compare = updateCompare.compareTo(masterCompare); 

     if (compare > 0) { 
      newMasterMovies[newMasterCount] = masterMovies[masterCount]; 
      masterCount++; 
      newMasterCount++; 
     } 

     if (updateMovies[updateCount].getActionCode() == "A") { 
      newMasterMovies[newMasterCount] = updateMovies[updateCount]; 
      updateCount++; 
      newMasterCount++; 
     } 

     if (updateMovies[updateCount].getActionCode() == "D") { 
      updateCount++; 
      masterCount++; 
     } 

     if (updateMovies[updateCount].getActionCode() == "C") { 
      newMasterMovies[newMasterCount] = updateMovies[updateCount]; 
      updateCount++; 
      newMasterCount++; 
      masterCount++; 
     } 

    } 

這就是我的數組看起來像我想排序。我試圖做一個選擇排序,但感到困惑,因爲我想排序兩個屬性,而不僅僅是一個。

+2

歡迎來到Stack Overflow!我們很樂意提供幫助,但我們需要查看更多的代碼。你想達到什麼目的?你試過什麼了?你看到什麼錯誤? – nhouser9

+1

你想如何訂購這些領域?另外,創建一個pojo並對該數組進行排序。 –

回答

1

這傢伙在這裏做了奇蹟

Arrays.sort(iArr); 

這裏是它能做什麼: 下面是一個例子代碼

public class ArrayDemo { 

public static void main(String[] args) { 

    // initializing unsorted int array 
    int iArr[] = {2, 1, 9, 6, 4}; 

    // let us print all the elements available in list 
    for (int number : iArr) { 
    System.out.println("Number = " + number); 
    } 

    // sorting array 
    Arrays.sort(iArr); 

    // let us print all the elements available in list 
    System.out.println("The sorted int array is:"); 
    for (int number : iArr) { 
    System.out.println("Number = " + number); 
    } 
    } 
} 

而且結果應該是這樣的

數= 2

編號= 1

總數= 9

總數= 6

總數= 4

的排序int數組是:

總數= 1

總數= 2

總數= 4

數= 6

數= 9只

希望這有助於一些

0

只是簡單的排序您Movies[]可以使用Arrays.sort和使用自定義Comparator。就像這樣:

Arrays.sort(masterMovies, new Comparator<Movies>() { 
     @Override 
     public int compare(Movies o1, Movies o2) { 
      // compare boxID 
      // compare movieID 
      return 0; // return result 
     } 
    }); 

Arrays.sort使用merge sortbinary insertion sort這兩者都是更加穩定,比selection sort更快。

如果您堅持要做選擇排序,請嘗試編輯yor類Movies以實施Comparable接口,如下所示:class Movies implements Comparable<Movies>。並實現compareTo方法是這樣的:

@Override 
    public int compareTo(Movies o) { 
     // compare boxID 
     // compare movieID 
     return 0; // return result 
    } 

,改變你的舊代碼進行比較,以int compare = updateCompare.compareTo(masterCompare);int compare=updateMovies[updateCount].compareTo(masterMovies[masterCount]);,然後去。