如何根据选定的列表

时间:2015-05-20 13:25:30

标签: java arraylist hashmap

我需要您的助手根据我HashMap中提供的项目从ArrayList获取标签。 String ArrayList的值为[" CE1"," CE2"],并且它在bean中的初始化为:

private List<String> selectedCertificates = new ArrayList<String>();

目前,它有两个值。

HashMap代码是:

Map<String, String> certificates = new HashMap<String, String>();
certificates.put("CE1", "AAAA"); 
certificates.put("CE2", "BBBB");
certificates.put("CE3", "CCCC");

我的问题是我需要根据上面列表中的可用密钥在不同的ArrayList中获取标签(&#34; AAAA&#34;,&#34; BBBB&#34;),所以我可以在dataTable中显示标签。

4 个答案:

答案 0 :(得分:1)

如果我理解正确,您在单独的arraylist中有一个地图键的子集,并且只需要与这些键对应的地图值。 如果是这样的话,那么(假设你的这个arraylist被称为keySubSet)

for(String keyInSubSet : keySubSet) {
   selectedCertificates.add(certificates.get(keyInSubSet));
}

答案 1 :(得分:0)

只是做:

   Map<String, String> certificates = new HashMap<String, String>();
    certificates.put("CE1", "AAAA"); 
    certificates.put("CE2", "BBBB");
    certificates.put("CE3", "CCCC");
    List<String> selectedCertificates = new ArrayList<String>();
    selectedCertificates.add("CE1");
    selectedCertificates.add("CE2");

    List<String> result = new ArrayList<String>();


    for (String certificate : selectedCertificates) { 

        String certificateValue = certificates.get(certificate);
        result.add(certificateValue);
    }



    System.out.println(result);

在此示例中,我将CE1和CE2作为选定的证书。然后我得到地图中这些键的值。

答案 2 :(得分:0)

这是否满足您的要求:

List<String> result = new ArrayList<String>();
for (String selectedCertificate : selectedCertificates) {
    result.add(certificates.get(selectedCertificate);
}

答案 3 :(得分:0)

    List<String> selectedCertificates = new ArrayList<String>();
    selectedCertificates.add("CE1");
    selectedCertificates.add("CE2");
    Map<String, String> certificates = new HashMap<String, String>();
    certificates.put("CE1", "AAAA"); 
    certificates.put("CE2", "BBBB");
    certificates.put("CE3", "CCCC");

   List<String> valuesList = new ArrayList<String>();
   for(String k : selectedCertificates){
       if(certificates.containsKey(k)){
          valuesList.add(certificates.get(k));
       }
   }