2013-12-10 36 views
0

我需要從我的配置得到具體的信息獲取從配置信息,它看起來像這樣:使用LIST的Java

name: test 
locationA: -453.0,8.0,-187.0 
locationB: -462.0,3.0,-174.0 
prisonfile: ./plugins/JB/test.prison 
prisons: 
- 622.0,4.0,-456.0 
- 611.0,4.0,-456.0 
- 588.0,4.0,-867.0 
- 597.0,4.0,-867.0 
- -454.0,4.0,-176.0 
- -460.0,4.0,-176.0 
police: 
- 611.0,4.0,-471.0 
- 622.0,4.0,-471.0 
- 597.0,4.0,-877.0 
- 588.0,4.0,-877.0 
- -460.0,4.0,-186.0 
- -454.0,4.0,-186.0 
open: true 

而且我的代碼看起來是這樣的: HashMap的監獄= plugin.prisons.getPrison( world.getName(),false);

File configFile = new File(prison.get("config").toString()); 
    FileConfiguration config = YamlConfiguration.loadConfiguration(configFile); 
    String listName = "police"; 
    List<String> list = config.getStringList(listName); 

現在如果我打印出清單,它只是寫下所有的配位從列表警察,是啊,它的好,但我需要的是得到永遠只是1個隨機協調,例如-454.0,4.0,-186.0。

我能想象它的noobish的問題,但我不能用我自己的很長修復它因此希望一些幫助

+0

生成一個隨機索引到列表大小並獲取該索引的元素? –

回答

0

在列表中的項目可以通過指數等訪問:

List<String> list = config.getStringList(listName); 
list.get(0); // Will return first element. 

或者遍歷完整列表,如:

for(int i = 0; i < list.size(); i++){ 
    String s = list.get(i); 

    if(s.equals("abc")){ 
     // Do whatever required based on comparing element value. 
    } 
} 
+0

感謝您的回答,但我希望像檢查一樣有多少協調在配置和隨機得到其中1。你能幫忙嗎? – user3009924

+0

你可以遍歷list並且getSize()會返回你的列表大小。在迭代時,您可以獲取元素並執行檢查。 –