这个map/string数组中发生了什么?

ham*_*314 1 java arrays string dictionary

首先,我的代码工作正常.没有什么需要做的,但是当我从其他地方复制代码的某些部分时,我不完全理解这里发生的事情并希望得到解释来学习一些东西.

我使用play框架并向我的控制器类发送一个带有ID和分数的AJAX POST.我将这些参数放入字符串并将其保存在我的数据库中.

Map<String, String[]> parameters = request().body().asFormUrlEncoded();
        String questionIDInput = parameters.get("questionID")[0];
        String voteScoreInput = parameters.get("score")[0];
Run Code Online (Sandbox Code Playgroud)

我得到的部分是:.get("questionID")[0]; / .get("score")[0];.为什么那里有两个零?地图是某种长字符串,我"questionID / score"用作查找值的键吗?0真的让我感到困惑,请赐教.

Era*_*ran 8

parameters.get("questionID")返回键"questionID"的值.该值是一个String数组(String[]),因此parameters.get("questionID")[0]为您String提供该数组的第一个.

请注意,此代码假定"questionID"键存在于Map中,并且该键的值是非空数组.如果这些假设中的任何一个都是假的,你会得到一个NullPointerException或者ArrayIndexOutOfBoundsException.