【发布时间】:2020-08-14 14:50:48
【问题描述】:
我有以下 HashMap,我在方法中插入字符-int 对并返回此 hashmap:
HashMap<Character, Integer> hmap = new HashMap<Character, Integer>();
for (...) {
hmap.put(string[i], number[i]);
}
但是,当我想将此返回的 hashmap 键转换为 char 数组时,它还包括括号和逗号:
char[] charArray = myReturnedHashMap.keySet().toString().toCharArray();
//it returns 8 char "[ A , B , C , ]" instead of just "A B C"
那么,我该如何解决呢?
更新:另一方面,我不确定在这种情况下使用 HashMap 是否是个好主意。我有一个循环,我只需要返回 char 和 int 值对。然后在另一种方法中,我将 char 值转换为 chararray。有什么想法吗?
【问题讨论】:
-
@am0awad 我认为您没有看到注释行它返回 8 char "[ A , B , C , ]" 而不仅仅是 "ABC"。
-
这是因为您将键转换为字符串表示形式,它添加 , 和 [ ] 以获得漂亮的输出,然后在漂亮的输出之上执行
.toCharArray()。您需要做的是迭代keySet()并将它们放入 char 数组中 -
有任何 Java 开发人员有任何想法吗? :(
-
@sonnet 是否有任何通过 lambda 表达式的迭代,例如地图(m=>m....)?请问有什么例子吗?
-
不要使用
toString方法进行转换,而是在myReturnedHashMap.keySet()返回的Set 上使用toArray()方法(请注意,这将为您提供Character[],但如果您愿意/需要将其转换为char[]我相信您可以在 SO 上找到一些解决方案。
标签: java arrays list arraylist hashmap