Salvar e Comparar Valores HashMap

Boa tarde!

Pessoal seguinte, estou com o seguinte cenario: Tenho uma consulta que gera um Map, esta primeira consulta vai servir como espelho para uma segunda.
Caso a segunda lista nao contenha algum valor da primeira lista, preciso que seja impresso esse valor.
Caso em uma nova consulta estiver com o map estiver com o mesmo valor faltando conforme ja visto, entao deve ignorar e seguir o loop.
Caso o item que estava faltando for inserido novamente, entao informar que o item foi adicionado.

Acho que seria + ou - assim:

// copia a primeira
HashSet chavesNaoContidas = new HashSet(primairaLista.keySet()); // supondo que as listas sejam map
// remove os que estão na segunda
chavesNaoContidas.removeAll(segundaLista.keySet());

imprime(chavesNaoContidas);
if (chavesNaoContidas.contains(chaveDoNovo)) {
  imprime(novo);
  chavesNaoContidas.remove(chaveDoNovo); // atualiza
}
segundaLista.put(chaveDoNovo, novo);

Desculpe pela demora no retorno, estou passando por uns problemas familiares!
Mas ok vamos la… Funcionou conforme vc me sugeriu, mas estou com duvidas em relacao a questao do IF:
if (chavesNaoContidas.contains(chaveDoNovo)) {
imprime(novo);
chavesNaoContidas.remove(chaveDoNovo); // atualiza
}
segundaLista.put(chaveDoNovo, novo);

chaveDoNovo eu nao entendi de onde buscar, Como me sugeri para relacionar esse novo item que estava falatando.

A estrutura Set é um conjunto. Conjuntos não podem ter elementos iguais. Listas podem ter elementos iguais.

A estrutura Map é um tipo de conjunto em que a comparação é feita pela chave e não pelo elemento como no conjunto normal, permitindo que haja mais de um elemento igual, mas as chaves somente única.

A chaveDoNovo é a chave de identificação do novo elemento. Não sei qual seria chave pois não sei que tipo o novo elemento é.

Exemplos de chaves:

chave            | elemento
------------------------------------
placa do veículo | veículo
CPF              | pessoa física
CNPJ             | pessoa jurídica
id               | estudante
id               | funcionário

Na linha onde está:

if (chavesNaoContidas.contains(chaveDoNovo)) {

A comparação é feita pela chave e não do elemento
vc poderia também usar:

if ( !segundaLista.containsValue(novo) ){

que verifica se contém o elemento (não a chave), ou usar:

if ( !segundaLista.containsKey(chaveDonovo) ){

que seria o equivalente ao que foi postado anteriormente

Aqui tenho um exemplo onde consigo representar melhor a necessidade.
Map<String, String> map1 = new HashMap<String,String>();
map1.put(“1”,“One”);
map1.put(“2”,“Two”);
map1.put(“3”,“Three”);
map1.put(“4”,“Four”);
map1.put(“5”,“Five”);

Map<String,String> map2 = new HashMap<String, String>();
map2.put(“1”,“One”);
map2.put(“2”,“Two”);
map2.put(“3”,“Three”);
map2.put(“4”,“Four”);

Tendo as 2 consultas conforme esta no exemplo na consulta map2, esta faltando o K/V map1.put(“5”,“Five”);
Este passo ja esta resolvido com o seu codigo passado anteriormente, onde ele esta me mostrando o valor que esta faltando no segundo map.
O que se faz necessario agora e que, caso em um nova consulta o valor map1.put(“5”,“Five”); seja inserido no map2 deve ocorrer de informar que o K/V estao presentes na segunda lista.
Algo do tipo: Valor “Four” Adicionado na Segunda Consulta.

Bom, não entendi muito bem, um desses exemplos deve ajudar:

Map<String,String> map2 = new HashMap<String, String>() {
  public String put(String k, String v) {
    String old = super.put(k, v);
    if (!Objects.equals(old, v)) {
      System.out.println("Valor "+v+" adicionado na segunda consulta");
    }
    return old;
  }
}

ou

crie uma lista ou map que armazene tudo que será adicionado após a primeira consulta, exemplo:

Map map1;
Map map2;
Map mapBuffer;

public void adicionar(k, v) {
   // se não tiver no map2
  if (!map2.containsKey(k)) {
    mapBuffer.put(k, v);
  }
}

public void consultar(int numeroDaConsulta) {
  map2.putAll(mapBuffer); // passa tudo para o map2
  for(String v:mapBuffer.values()) {
    System.out.println("valor "+v+" adicionado no map2 na consulta: "+numeroDaConsulta);
  }
  mapBuffer.clear(); // limpa
}