gpt4 book ai didi

java - 将 Object[] 从 HashMap 键集转换为 String[]?

转载 作者:太空狗 更新时间:2023-10-29 22:32:39 26 4
gpt4 key购买 nike

Set<String> keys = mappings.keySet();
String[] keyArray = (String[]) keys.toArray();

String hashmapDetails = "";
for(int p=0; p < keyArray.length; p++){
String[] details = keyArray[p].split("/");
hashmapDetails += details[1];
hashmapDetails += mappings.get(keyArray[p]);
if (p != keyArray.length -1){
hashmapDetails += ";";
}
}

请原谅我缺乏理解,但我正在尝试探索 hashmaps 的用法。我知道 toArray() 返回一个 Object[]。但是,不能将其类型转换为 String[] 吗?正如您在代码中看到的,稍后,我需要遍历一个数组并进行一些拆分和其他字符串操作。

这样做我得到了一个错误:

java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.String[]

非常感谢任何关于我应该如何解决这个问题的指导。谢谢!

最佳答案

您不能简单地将 Object[] 数组转换为 String[] 数组。您应该改用 the generic version of toArray ,这应该会更好:

String[] keyArray = keys.toArray(new String[keys.size()]);

另请注意,您可以简单地遍历 entrySet(这将保存所有 get 调用)并使用 StringBuilder 以获得更好的字符串连接效率:

StringBuilder hashmapDetails = new StringBuilder();
for(Map.Entry<String, String> e : mappings.entrySet()) {
String[] details = e.getKey().split("/");
hashmapDetails += details[1];
hashmapDetails += e.getValue();
hashmapDetails += ";";
}

String result = hashmapDetails.substring(0, hashmapDetails.length() - 1);

关于java - 将 Object[] 从 HashMap 键集转换为 String[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16021991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com