我需要您的助手根据我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中显示标签。
答案 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));
}
}