【发布时间】:2016-12-08 15:17:17
【问题描述】:
我有一个这样的字符串数组:
String[] a={"Hi","Hello","Dear","Jungle"};
我有一个像这样的 HashMap:
Map<String, String> map=new HashMap<>();
map.put("Hi", "1");
map.put("Hello", "2");
map.put("Dear", "3");
map.put("Jungle", "4");
map.put("Sai", "5");
map.put("Surya", "6");
HashMap 是我比较的基础。 如果我们看到,字符串数组错过了两个字符串SAI和SURYA。
我正在遍历 hashmap 并检查 String 数组,如下所示:
int c=0;
for(String key: map.keySet()){
c=0;
for (int i = 0; i < a.length; i++) {
if(key.equals(a[i])){
c++;
System.out.println("App :"+ key+"present in DB , SO it is passed.");
}
}
if(c==0){
System.out.println("App not present in DB, SO it might have failed");
}
}
这是我的完整程序:
import java.util.HashMap;
import java.util.Map;
public class TestingApplication {
public static void main(String[] args) {
String[] a={"Hi","Hello","Dear","Jungle"};
String[] status={"Passed","Passed","Passed","Passed"};
Map<String, String> map=new HashMap<>();
map.put("Hi", "1");
map.put("Hello", "2");
map.put("Dear", "3");
map.put("Jungle", "4");
map.put("Sai", "5");
map.put("Surya", "6");
int c=0;
for(String key: map.keySet()){
c=0;
for (int i = 0; i < a.length; i++) {
if(key.equals(a[i])){
c++;
System.out.println("App:"+ a[i]+" present in DB , SO it is passed.");
}
}
if(c==0){
System.out.println("App not present in DB, SO it might have failed");
}
}
}
}
我的输出是:
App not present in DB, SO it might have failed
App:Hi present in DB , SO it is passed.
App:Dear present in DB , SO it is passed.
App:Hello present in DB , SO it is passed.
App:Jungle present in DB , SO it is passed.
App not present in DB, SO it might have failed
1.) 我们如何知道数组中缺少哪个 KEY? 2.) 我们如何将缺失的字符串添加到数组中?
编辑:我的问题不在于迭代 HashMap。 我的问题是关于如何找出差异并将它们存储回数据结构中。 如果您觉得如此,请阅读我的问题,然后将其标记为重复。
【问题讨论】:
-
@RafiduzzamanSonnet 遍历 HashMaps 不是我的问题。我想知道如何找到数据的差异。
-
if (c==0) {...}表示数组中不存在key对吧?因此,您知道数组中缺少哪个 KEY。这是你的第一个答案。为了将缺少的 KEY 添加到数组中,您可以将String [] a设为数组列表而不是数组。因此,如果您从一开始就将a设为数组列表,那么您可以在if条件下执行此操作:a.add(key)
标签: java arrays string hashmap