将ConcurrentHashMap转换为HashMap

1 java

是否有可能转换ConcurrentHashMapHashMapjava?

这是我的示例程序,我从哪里转换ConcurrentHashMapHashMap但是我得到以下异常:

线程"main"中的异常java.lang.ClassCastException:java.util.concurrent.ConcurrentHashMap无法转换为com.Hi.main中的java.util.HashMap(Hi.java:18)

我的代码:

package com;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class Hi {

    public static void main(String args[]) {

        Map<String, String> conpage = new ConcurrentHashMap<String, String>();

        conpage.put("1", "A");
        conpage.put("2", "B");
        conpage.put("3", "C");

        HashMap hm = (HashMap) conpage;

        System.out.println(hm.get("1"));

    }

}
Run Code Online (Sandbox Code Playgroud)

Buh*_*ndi 10

Map<String, String> hashMap = new HashMap<String, String>(conpage);
Run Code Online (Sandbox Code Playgroud)

ConcurrentMap(像ConcurrentHashMap)与任何没有关系AbstractMap,例如有HashMap,因此该解决方案是创建一个新HashMap加入从所有值中ConcurrentHashMap的对象创建过程.

希望这可以帮助.


NIN*_*OOP 5

一个ConcurrentHashMap的是不是一个HashMap的,所以你不能执行这个转换.无论实现如何,都将它们视为Map.

不过,您可以使用Map#putAll().

推荐阅读:

  1. Java - HashMap与Map对象
  2. "编程到界面"是什么意思?