java - 从树形图中删除元素

标签 java treemap

我编写了一个采用整数数组的代码,但我无法找到一种方法来删除获得(假)值的树形图元素。 任何帮助,将不胜感激。 代码如下。

import java.util.*;

public class Solution {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner s=new Scanner(System.in);
        int x=s.nextInt();
        String[] str=new String[x];
        for(int i=0;i<x;i++)
        {
            str[i]=s.next();
        }
        TreeMap<Character, Boolean> store=new TreeMap<Character, Boolean>();
        for(int i=0;i<str[0].length();i++)
        {
            store.put(str[0].charAt(i), false);
        }
        for(int i=1;i<str.length;i++)
        {
            for(int j=0;j<str[i].length();j++)
            {
                if(store.containsKey(str[i].charAt(j)))
                {
                    store.put(str[i].charAt(i), true);
                }
            }
                //code for removing elements from treemap with false value.
        }
    }
}

最佳答案

没有有效的方法来定位所有具有给定值的Map条目并删除它们。为此,您必须迭代所有条目。

但是,您不必这样做。首先避免将它们放入 Map 中。不要将第一个具有 false 值的 String 的字符放入 Map 中,而是将它们放入单独的 Set 中:

Map<Character, Boolean> store = new TreeMap<>();
Set<Character> set = new TreeSet<>();
for(int i=0;i<str[0].length();i++)
{
    set.add(str[0].charAt(i));
}
for(int i=1;i<str.length;i++)
{
    for(int j=0;j<str[i].length();j++)
    {
        if(set.contains(str[i].charAt(j)))
        {
            store.put(str[i].charAt(i), true);
        }
    }
}

关于java - 从树形图中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55887867/

相关文章:

java - 何时需要在 web.xml 中包含 Jersey ServletContainer 以启用 JAX-RS?

java - 如何实现网络服务事务?

java - 为什么并发线程限制没有按预期工作?

java - 从命令行运行 junit 类文件

java - 一直在寻找文本文件中 25 个最常见的单词

java - TreeMap 随机停止正确返回值

java - 从特定键迭代 TreeMap 到 map 末尾

javax.crypto.BadPaddingException : Given final block not properly padded - AES/CBC/PKCS5PADDING

dictionary - 交换 map 项的位置

java - 通过增加值排序和显示 TreeMap 问题