Worked example
String[] have = {"x", "y", "z", "x"};
String[] known = {"y", "z"};
Set<String> knownSet = new HashSet<String>();
for (int i = 0; i < known.length; i++) {
knownSet.add(known[i]);
}
int missing = 0;
for (int i = 0; i < have.length; i++) {
if (!knownSet.contains(have[i])) { // not in the known set
missing++;
}
}
System.out.println(missing); // 2 — the two x's
Every have element that is not in knownSet is counted, repeats included.