java里获取map键值对的问题

如题,我想获取输入的数据,通过map的键值对存入再获取

 ActionContext ctx = ActionContext.getContext();
    Map map = ctx.getParameters();
    String username =  map.get("username").toString();
    String password =  map.get("password").toString();
    public String execute()
    {
        if(username.equals("denglixuan")&&password.equals("1996"))
        {
            return "success";
        }
        else
        {
            return "error";
        }   
    }

输入的都是简单数字或字母或者为空,可是不知道为什么获取到的值都是类似[Ljava.lang.String;@1681946f的格式,我想知道怎样才能获取到输入的值!!

String username = map.get("username").toString();
->
String username = (String)map.get("username");

 [Ljava.lang.String;@1681946f这个是数组,String [] username = (String[])map.get("username");

图片说明

 public class ActionText extends ActionSupport
{
    ActionContext ctx = ActionContext.getContext();
    Map map = ctx.getParameters();
    String [] username = (String[])map.get("username");
    String [] password = (String[])map.get("password");
    public String execute()
    {
        System.out.println("username:"+username);
        System.out.println("password:"+password);
        if(username.equals("denglixuan")&&password.equals("1996"))
        {
            return "success";
        }
        else
        {
            return "error";
        }   
    }

}

还有jsp

 <body>
<h1>欢迎来到登录界面!</h1><br><br>
<s:property value = "username"/>
<s:property value = "password"/>
<s:form action = "actiontext">
用户名称:<input type = "text" name = "username">
<br><br>
用户密码:<input type = "password" name = "password">
<br><br>
<input type="submit" value = "登录">
<input type="reset" value = "重置">
</s:form>
</body>

既然都能取到 String【 】 username 了,他是一个数组,你可以尝试打印一下
for(String name :username){
sysout(name);
}

new Map 的时候直接 new 成String 不行了吗?
Map map= new HashMap();

泛型多好用的,泛型一定要泛型!