2014-10-06 82 views
0

這是事情:基於一個int數組排序java中的多個數組

我有四個不同的數組與實體相關的索引。我的意思是array1[i]array2[i],array3[i]array4[i]有關。我想根據array4[]這是int類型對這些數組進行排序。所以,我實現了一個實體類:

public class EntityObject implements Comparable<EntityObject> { 

    String value; 
    String date; 
    String cat; 
    int index; 


    EntityObject(String value, String date, String cat, int index){ 
     this.cat = cat; 
     this.date = date; 
     this.value = value; 
     this.index = index; 
    } 

而在我的主類,我有:

EntityObject[] array = new EntityObject[entry]; 
    for(int i = 0; i < entry; i ++){ 
     array[i] = new EntityObject(valueDB[i], dateDB[i], catDB[i], catIndexDB[i]); 
    } 

現在我想根據catIndexDB[]這是int類型排序我arrayEntityObject。我如何做到這一點?

回答

0

通過從Comparable接口實現compareTo(EntityObject o)完成。這裏記載:http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html

然後調用Arrays.sort(yourArray)如果你在你的類EntryObject添加getIndex方法

public int getIndex(){ 
    return index; 
} 

排序您EnityObjects

+0

謝謝,但是當我想將此方法添加到我的對象中時,出現錯誤:「無法在基本類型int」 – A23149577 2014-10-06 09:51:20

+0

上調用compareTo(int),您需要將其與另一個EntityObject進行比較而不是int。更改您的參數類型 – tom 2014-10-06 10:36:21

+0

非常感謝 – A23149577 2014-10-06 11:29:20

0

的數組,你可以用任何你想要的排序算法進行排序的數組通過比較

array[i].getIndex(); 

使用,否則你可以EntryObject可比性和使用