Map有2个方法分别取到KEY的集合和VALUE的集合:
keySet() 
values()
取到的分别是一个SET和Collection
它们都有:toArray() 方法,来获得相应的对象数组。
如果你的KEY和VALUE都是STRING类型的话,可以进行强制类型转换获得STRING数组。

解决方案 »

  1.   

    那我这样写可以吗?
    如:
    HashMap hash=new HashMap();
    String[] tmp=new String(hash.keySet().toArray());就可以得到了吗?呵呵,试试!
      

  2.   

    HashMap hash=new HashMap();
    String[] tmp=new String(hash.keySet().toArray());第二句好象有点错吧。。
    这不是强制转换。
    String[] tem = (String[])(hash,keySet().toArray())
      

  3.   

    Mars_wx(晓晓):你好。第二句按照你那样修改后还是会抛出异常的:java.lang.ClassCastException
    类转换错误!
      

  4.   

    我也不是很清楚:)
    查看JDK吧
      

  5.   

    注意:要强制转换类型,必须是:你的KEY和VALUE都是STRING类型
    不是的话怎么可能转??
    你的对象不是STRING的你要STRING有什么用?
      

  6.   

    上面说的不严密,应该说,想KEY转换STRING类型,那么所有KEY都应该是STRING的,
    想VALUE转STRING,那么所有VALUE都应该是STRING。
      

  7.   

    Use this:Object[] tem = hash.keySet().toArray();
    String[] str = new String[tem.length];
    for(int i = 0; i<tem.length; i++)
    {
      str[i] = tem[i].toString();
    }
      

  8.   

    前提:所有的key必须是StringHashMap hash=new HashMap();
    Collection keySet = hash.keySet();
    String[] tmp = new String[keySet.size()];
    keySet.toArray(tmp);
    或:
    HashMap hash=new HashMap();
    String[] tmp = hash.keySet().toArray(new String[0]);
      

  9.   

    第二种方法应该这样写:
    String[] tmp = (String[]) hash.keySet().toArray(new String[0]);
      

  10.   

    可以这样解决:
    int length=hash.size();
    String[] tmp=new String[length];
    Object[] key=hash.keyset.toArray();
    for(int i=0;i<length;i++){
    tmp[i]=(String)key[i];
    }