Java 如何将hashmap转换为条目数组

Java 如何将hashmap转换为条目数组,java,arrays,collections,map,toarray,Java,Arrays,Collections,Map,Toarray,我有一张地图 私有HashMap 我想将其转换为数组,但当我这样做/我得到以下结果: Entry<Character, Integer> t = map.entrySet().toArray(); **Type mismatch: cannot convert from Object[] to Map.Entry<Character,Integer>** Entry t=map.entrySet().toArray(); **类型不匹配:无法从对象[]转换为映射

我有一张地图

私有HashMap

我想将其转换为数组,但当我这样做/我得到以下结果:

Entry<Character, Integer> t = map.entrySet().toArray();    
**Type mismatch: cannot convert from Object[] to Map.Entry<Character,Integer>**
Entry t=map.entrySet().toArray();
**类型不匹配:无法从对象[]转换为映射项**

条目[]t=null;
map.entrySet().toArray(t);
**线程“main”java.lang.NullPointerException中出现异常**

Entry[]t=新条目[1];
map.entrySet().toArray(t);
**无法创建Map.Entry的常规数组**

条目[]t=null;
t=map.entrySet().toArray(t);
**线程“main”java.lang.NullPointerException中出现异常**

那么如何将
HashMap
转换为
Array
在其他科目中找到的答案都不起作用。

我认为这会起作用:

Entry<Character, Integer>[] t = (Entry<Character, Integer>[])
        (map.entrySet().toArray(new Map.Entry[map.size()]));    
Entry[]t=(Entry[]
(map.entrySet().toArray(newmap.Entry[map.size()]);

。。。但是您需要一个@SuppressWarning注释来抑制关于不安全类型转换的警告。

我不确定您尝试的具体方法。我要做的是

当您这样做时,您将获得一个EntrySet,因此数据将存储为Entry

因此,如果要将其保留在入口集中,可以执行以下操作:

List<Entry<Character, Integer>> list = new ArrayList<Entry<Character, Integer>>();

for(Entry<Character, Integer> entry : map.entrySet()) {
    list.add(entry);
}
并使用以下方法提取:

List<Data> list = new ArrayList<Data>();

for(Entry<Character, Integer> entry : map.entrySet()) {
    list.add(new Data(entry.getKey(), entry.getValue()));
}
List List=new ArrayList();
for(条目:map.entrySet()){
添加(新数据(entry.getKey(),entry.getValue());
}

问题是不可能创建一个通用数组,例如
Entry[]
。改为使用
列表
。是的。。伟大的真正的魔法。
Entry<Character, Integer>[] t = (Entry<Character, Integer>[])
        (map.entrySet().toArray(new Map.Entry[map.size()]));    
List<Entry<Character, Integer>> list = new ArrayList<Entry<Character, Integer>>();

for(Entry<Character, Integer> entry : map.entrySet()) {
    list.add(entry);
}
public class Data {
    public Character character;
    public Integer value;

    public Data(Character char, Integer value) {
       this.character = character;
       this.value = value;
    }
}
List<Data> list = new ArrayList<Data>();

for(Entry<Character, Integer> entry : map.entrySet()) {
    list.add(new Data(entry.getKey(), entry.getValue()));
}