2017-04-03 78 views
-1

我有一個這樣的文件(有兩個類型的分隔符「」和‘:’):的Java HasMap數據結構

Name,Animal,Spieces,ABB,Score 
jane,monkey,mammal,MA,1:2:4 
susan,monkey,mammal,MA,11:2b:4 
bob,spider,insect,IN,1a:2 

和類將數據存儲到對象是這樣的:

Class Spiecies { 
    private String spieces; 
    private String abb; //unique for each spieces 
    private List<Animal>; 

    //getters setters 
} 

Class Animal { 
    private String name; 
    private String animal; 
    private List<Score>; 

    //getters setters 
} 

Class Score { 
    private String points; 

    //getters setters 
} 

從文件中檢索數據,我想使用HashMap中,列表...或者一些數據結構和存儲數據是這樣的:

HasMap<String Spieces,HasMap<String Animal, List<Score>>> 

,其中數據像這樣存儲: mammal -> [ monkey, jane -> 1:2:4 ],[ monkey, susan -> 11:2b:4 ] ...等

這是正確的存儲這樣的數據嗎?以及如何將ABB放入地圖?

+1

什麼是你的「正確」的定義中的所有動物的細節?你爲什麼不在Spieces類中使用'Map '? – Fildor

+0

「以及如何將ABB放入地圖?」 - 似乎你不必。如果'spieces'值和'abb'值具有1:1的關係,則可以進行查找以從任何abb字符串獲取spieces字符串,然後使用該結果訪問地圖。 – Fildor

+0

我想對數據進行一些搜索。我還需要檢索spieces。 – caladi

回答

0

可以使用下面的數據結構,以簡化

Map<String,List<Animal>> map=new HashMap<>(); 

密鑰在地圖 =>(字符串spieces)+(字符串ABB)//由於兩個組合是唯一的。

價值在地圖 =>列出全部動物//給你基於Spieces + ABB組合