java - 如果将 HashMap 转换为数组,为什么将数组初始化为 >0 将不起作用
问题描述
我很困惑为什么如果使用 HashMap.values.toArray 但不使用大于 0 的情况下使用 0 初始化数组有效。
private class Node{
private char value;
private HashMap<Character, Node> children = new HashMap<>();
private void addChild(char ch) {
children.put(ch, new Node(ch));
}
private Node[] getChildren() {
return children.values().toArray(new Node[0]);
}
}
private Node root = new Node(' ');
public void insert(String word){
var current = root;
for ( var ch : word.toCharArray()){
if (!current.containsKey(ch))
current.addChild(ch);
current = current.get(ch);
}
}
public void print(){
print(root);
}
private void print(Node root){
for (var child : root.getChildren())
System.out.println(child.value);
}
如果我将其设置为初始化数组的大小 > 零,例如 new Node[1] ,这将不起作用;
解决方案
推荐阅读
- sql - SQL Server:如何从多行的 SELECT 中返回 1 行布尔值/字符串?
- c++ - 将win32 hbitmap转换为winrt softwarebitmap
- javascript - 使用 mongoose (javascript) + ESP32 从 MQTT flespi 开关继电器
- c++ - 由于 cout,GCC 4.8.2 自动矢量化失败
- python - TypeError:X 类型的对象不是 JSON 可序列化的
- mongodb - MongoDB 错误:连接到 mongo 副本集时无法到达集合 [set_name] 的主节点
- typescript - 打字稿全局变量
- c++ - 函数调用 C++ 中的参数太少
- ios - 在核心动画开始之前分层样式的正确方法是什么?
- c++ - C++ 中的二进制求幂