自己做了一下一个关于HashMap的实验:
import java.util.HashMap;
import java.util.Map;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!ssssss" );
Map<String,Object> mapTest = new HashMap<String,Object>();
mapTest.put("name", "syb");
mapTest.put("name", "xiebeibei");
mapTest.put("name", "dongshangyi");
String t = (String)mapTest.get("name");
System.out.println(t);
String first = ((String[])mapTest.get("name"))[0];
System.out.println("输出的内容是: "+first);
}
}
结果为:
Hello World!ssssss
dongshangyi
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.String;
at com.ynsh.Ceshi.App.main(App.java:25)
这就说明: hashMap在自己创造的时候,key值是不可以重复的,如果重复的话,后面的值就会覆盖先前的值
value的值是Object类型的,注意不是Object[ ];
主要是为了解决一下request.getParameterMap()的问题:
Map<String,Object> mapRet = new HashMap<String,Object>();
Map mapRaw = request.getParameterMap();
if (mapRaw.containsKey("start")){
mapRet.put("start", ((String[])mapRaw.get("start"))[0]);
}
这里的value值就是一个数组,这就说明request.getParameterMap()返回的map,是一个奇葩的Object[]