如何将两个数组转换为一个映射<k,v>

时间:2018-01-23 15:56:24

标签: java collections hashmap

我有两个阵列,

String[] stageIdList =[V0S186,V0S191,V75S0,V76S0,V0S200,V78S0,V130A0,V0A203];
String[] stageNameList = [Src_DRI_JFP_MISLOG_sf,Tfm_DRI_JFP_MISLOG,Tgt_DRI_JFP_MISLOG,Tgt_A_JFP_MISLOG_D_DS,Sequential_File_200,Sequential_File_201, ,\(20)];

它们在键中:值组合。如何在调用时找到特定键的等效值? 在这种情况下,Hashmap会有用吗?如果是,我如何制作两个名单?

PS。我是java的新手

2 个答案:

答案 0 :(得分:1)

我认为您希望通过StageNameList中的值从StageIdList获取一些值。 你可以创建

Map<String,String> map = new HashMap<>
for(int i=0;i<stageNameList.size){
map.put(name,stageIdList.get(i));
}

按键获取价值:

map.get(key);

key - 您在stageNameList中的名字

答案 1 :(得分:0)

您是否介意更多地了解这个问题?

1)如果你想做类似的事情: 给你一个stageID,你应该返回stageName。

然后你只需要一个hashmap,其中stageID是键,stageName是值。解决方案类似于АртемК的答案。虽然在for循环和stageNameList.length和stageIDList [i]中应该有一个++ i,因为stageNameList实际上是一个数组。

2)但是,如果你想做这样的双向映射: 给你一个stageID,你应该返回stageName。如果给你一个stageName,你应该返回stageID。

您可能需要创建两个哈希映射。或者你需要做一个entrySet迭代等等。