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