2017-04-12 31 views
0

我有一個地圖實現Map<String, List<String>>和一個javabean類,它具有映射鍵的成員變量。水平循環地圖<String,列表<String>>和設置變量javabean

Java bean類:

@Data 
public class SplunkConfig { 

    private String parameter1; 
    private String parameter2; 
    private String parameter3; 

} 

地圖:

{host=["abc","def","ghi","jkl"],count=["1","3","4","5"],time=["2017-02-03","2017-02-04","2017-02-04","2017-02-05"]} 

我想設置變量SplunkConfig類象下面這樣:

SplunkConfig sc = new SplunkConfig(); 
sc.setParameter1("abc"); 
sc.setParameter2("1"); 
sc.setParameter3("2017-02-03"); 
sc.setParameter1("def"); 
sc.setParameter2("3"); 
sc.setParameter3("2017-02-04"); 
..so on.. 

我有一個數組列表一旦設置了變量,就可以存儲Java bean。

所以,我必須逐個遍歷每個鍵的映射值並設置javabean成員變量,如上所示。

有人可以讓我知道如何循環?

在此先感謝。

+0

如果你使用'setParameter1'兩次,第一個是有用的,因爲它會擦除第一個操作,這真的是你在做什麼? – azro

+0

@azro,是的,我知道這一點。一旦變量被設置,我有一個列表來存儲bean。希望我現在清楚。 – harshavmb

+0

我已經添加它來顯示我想要循環。謝謝 – harshavmb

回答

2

首先,讓我們把地圖與數據mapWithData,其內容是:

{"host"=["abc","def","ghi","jkl"], "count"=["1","3","4","5"], "time"=["2017-02-03","2017-02-04","2017-02-04","2017-02-05"]} 

注意,鍵現在雙引號中的字符串。

現在,讓我們創建SplunkConfig從地圖對象的列表:

int numberOfElements = mapWithData.get("host").size(); 
List<SplunkConfig> config = new ArrayList<SplunkConfig>(); 

for (int i = 0; i < numberOfElements; i++) { 
    SplunkConfig sc = new SplunkConfig(); 
    sc.setParameter1(mapWithData.get("host").get(i)); 
    sc.setParameter2(mapWithData.get("count").get(i)); 
    sc.setParameter3(mapWithData.get("time").get(i)); 

    config.add(sc); 
} 

這是更好的做法,呼籲參數1在一個描述性的名稱 - 主機。參數2和3相同。

您終於可以使用或返回config

+0

如果我需要在'SplunkConfig'類中添加一個新變量,我實際上想動態循環而不給'host','count'和'time'鍵。但是,不知何故設法用'reflection' api來提取數據。非常感謝您的回答。 – harshavmb

相關問題