Este artigo descreve a implementação do Java de filtrar valores com chave ou valor vazio na coleta de mapas. Compartilhe -o para sua referência, como segue:
importar java.util.collection; importar java.util.hashmap; importar java.util.iterator; importar java.util.map; importar java.util.set;/*** filtre os valores da chave ou valor na coleta de mapa com as teclas vazias* @author lmb* @date 2017-3-3-3-14* Valor do valor no mapa * @param mapa */ public static void RemoveLentry (mapa mapa) {RemovelullKey (mapa); RemoveLullValue (mapa); } / ** * Remova a tecla vazia do mapa * @param mapa * @return * / public static void RemovelullKey (mapa mapa) {set set = map.keyset (); for (iterator iterator = set.iterator (); iterator.hasnext ();) {objeto obj = (object) iterator.next (); remover (obj, iterador); }} / ** * Remova o valor vazio no mapa * @param mapa * @return * / public static void RemovelullValue (mapa mapa) {set set = map.keyset (); for (iterator iterator = set.iterator (); iterator.hasnext ();) {objeto obj = (object) iterator.next (); Valor do objeto = (objeto) map.get (obj); remover (valor, iterador); }} /*** Remova os valores nulos no mapa** O iterador funciona em um encadeamento independente e possui um bloqueio mutex. * Depois que o iterador for criado, será criada uma tabela de índice de ligação única para o objeto original. Quando o número de objetos originais muda, o conteúdo desta tabela de índice não muda de maneira síncrona. * Portanto, quando o ponteiro do índice se move para trás, o objeto a ser iterado não pode ser encontrado. Portanto, de acordo com o princípio Fail-Fast, o iterador lançará imediatamente uma exceção java.util.ConcurrentModificationException. * Portanto, o iterador não permite que os objetos iterados sejam alterados quando funciona. * Mas você pode usar o próprio método do iterador remover () para excluir o objeto. O método iterator.remove () manterá a consistência do índice ao excluir o objeto iterado atual. * @param obj * @param iterator */ private static void remover (objeto obj, iterator iterator) {if (obj instanceof string) {string str = (string) obj; if (isEmpty (str)) {// filtra o resultado da saída da função principal com o mapa nulo e "": {2 = bb, 1 = aa, 5 = cc, 8 =} // if ("". equals (str.trim ())) {// filtre o resultado da saída da função principal com nulo, "" e "" e " iterator.remove (); }} else if (obj instanceof collection) {collection col = (coleção) obj; if (col == null || col.isempty ()) {iterator.remove (); }} else if (obj instanceof map) {mapa temp = (map) obj; if (temp == null || temp.isempty ()) {iterator.remove (); }} else if (obj instanceof object []) {object [] array = (objeto []) obj; if (array == null || array.length <= 0) {iterator.remove (); }} else {if (obj == null) {iterator.remove (); }}} public estático booleano isEmpty (objeto obj) {return obj == null || obj.toString (). comprimento () == 0; } public static void main (string [] args) {map map = new hashmap (); map.put (1, "AA"); map.put ("2", "bb"); map.put ("5", "cc"); map.put ("6", nulo); map.put ("7", ""); map.put ("8", ""); System.out.println (map); // resultado de saída: {2 = bb, 1 = aa, 7 =, 6 = null, 5 = cc, 8 =} reprovelulLentry (map); System.out.println (map); }}Resultados em execução:
{1 = aa, 2 = bb, 5 = cc, 6 = nulo, 7 =, 8 =}
{1 = aa, 2 = bb, 5 = cc, 8 =}
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.