Java 将while循环替换为for each
在Java中,如何将下面的while循环替换为for each循环Java 将while循环替换为for each,java,Java,在Java中,如何将下面的while循环替换为for each循环 JSONObject postParameters = new JSONObject(); Map parameterMap = httpRequest.getParameterMap(); Iterator<Map.Entry<String, String[]>> it = parameterMap.entrySet().iterator(); while (it.hasNext()) { Ma
JSONObject postParameters = new JSONObject();
Map parameterMap = httpRequest.getParameterMap();
Iterator<Map.Entry<String, String[]>> it = parameterMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String[]> entry = it.next();
if(entry.getValue().length == 1){
postParameters.put(entry.getKey(), entry.getValue()[0].toString());
}
else{
JSONArray valueList = new JSONArray();
for(String value : entry.getValue()){
valueList.add(value.toString());
}
postParameters.put(entry.getKey(), valueList);
}
}
JSONObject后参数=新的JSONObject();
Map parameterMap=httpRequest.getParameterMap();
迭代器it=parameterMap.entrySet().Iterator();
while(it.hasNext()){
Map.Entry=it.next();
if(entry.getValue().length==1){
postParameters.put(entry.getKey(),entry.getValue()[0].toString());
}
否则{
JSONArray valueList=新的JSONArray();
for(字符串值:entry.getValue()){
valueList.add(value.toString());
}
postParameters.put(entry.getKey(),valueList);
}
}
基本上我想让它更具可读性。您可以直接在
entrySet
上使用ForEach
,如下所示:
JSONObject postParameters = new JSONObject();
Map parameterMap = httpRequest.getParameterMap();
for (Map.Entry<String,String[]> entry : parameterMap.entrySet()){
if(entry.getValue().length == 1){
postParameters.put(entry.getKey(), entry.getValue()[0].toString());
}
else{
JSONArray valueList = new JSONArray();
for(String value : entry.getValue()){
valueList.add(value.toString());
}
postParameters.put(entry.getKey(), valueList);
}
}
JSONObject后参数=新的JSONObject();
Map parameterMap=httpRequest.getParameterMap();
对于(Map.Entry:parameterMap.entrySet()){
if(entry.getValue().length==1){
postParameters.put(entry.getKey(),entry.getValue()[0].toString());
}
否则{
JSONArray valueList=新的JSONArray();
for(字符串值:entry.getValue()){
valueList.add(value.toString());
}
postParameters.put(entry.getKey(),valueList);
}
}
JSONObject后参数=新的JSONObject();
Map parameterMap=httpRequest.getParameterMap();
对于(Map.Entry:parameterMap.entrySet()){
if(entry.getValue().length==1){
postParameters.put(entry.getKey(),entry.getValue()[0]);
}否则{
JSONArray valueList=新的JSONArray();
for(字符串值:entry.getValue()){
价值清单。添加(价值);
}
postParameters.put(entry.getKey(),valueList);
}
}
正如Mustahsan所说,但是您可以去掉redudant toString()方法,最后一个else
块可以更改为较短的版本,可以考虑一次收集整个条目值,并将其作为JSONArray放入后参数中
JSONObject postParameters = new JSONObject();
Map<String, String[]> parameterMap = httpRequest.getParameterMap();
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
if (entry.getValue().length == 1) {
postParameters.put(entry.getKey(), entry.getValue()[0]);
} else {
JSONArray valueList = new JSONArray();
for (String value : entry.getValue()) {
valueList.add(value);
}
postParameters.put(entry.getKey(), valueList);
}
}