2013-10-08 132 views
1

我有存儲在「殭屍」中的項目列表。系統打印的時間會給我。在列表中標記元素並將它們進行比較

[<1.0, 3.0, 2.0>, <2.0, 5.0, 4.0>, <2.0, 4.0, 1.0>, <4.0, 7.0, 3.0>] 

我的問題是我如何能分配一個標籤,每個元素在列表中,這樣我就可以放心打電話給他們<age, height, weight>

標籤的最終想法是,這樣我可以做的排序「最重」的殭屍並將結果存儲到散列表中。

public class zombieCalculator{ 

    double age; 
    double weight; 
    double height; 

     public static Map<Position, List<Position>> Random (List<Position> zombie) { 

     System.out.println(time); 

     } 

     public zombieCalculator(double age, double weight, double height) 
    { 
     this.age= age; 
     this.weight= weight; 
     this.height = height; 

    } 
    } 

回答

1

我認爲最好的選擇是創建一個類殭屍這個3參數年齡,身高和脂肪。 然後,您可以創建一個脂肪比較級根據脂肪參數殭屍排序:

class FatZombieComparator implements Comparator<Zombie>{ 

    int compare(Zombie z1, Zombie z2){ 
     return z1.getFat() - z1.getFat(); 
    } 
} 

現在你可以存儲你的殭屍在名單和排序有比較列表:

List<Zombie> zombies = new ArrayList<Zombie>(); 
zombies.add(...); 
Collections.sort(zombies, new FatZombieComparator()) 

您可以創建年齡或身高新comparatoclass

+0

@JohnnyAW嗨,我真的不明白的比較是如何工作的。我用你的(殭屍類)和3參數的建議編輯了我的代碼。儘管如此,標籤部分仍然有點混亂。 –

+0

要對java清單中需要知道的列表進行排序,如何比較2個對象(殭屍),比較器對象通過compare-method告訴java如何比較2個殭屍。我真的不真的瞭解標籤問題...你有殭屍對象,你可以通過zombie.getAge(),zombie.getFat()和zombie.getHeight()來訪問年齡,脂肪和身高 – JohnnyAW

+0

我明白你的意思了在那裏關於比較2個對象。我之所以提到標記是因爲輸入只是數字號碼<3,2,4>。沒有跡象表明哪一個是年齡,身高,體重。 - @johnnyAW –

0

您需要一個Zombi類。

class Zombi{ 
    double age, height, fat; 

    @Override 
    public String toString() { 
     return "age: " + age + ", height: " + height + ", fat: " + fat; 
    } 
} 

更改地圖

Map<Position, Zombi> map; 
相關問題