回 帖 发 新 帖 刷新版面

主题:java中这句for代码怎么理解?

public static String doPost(String urlString, Map[color=FF00FF]<String, String> [/color]nameValuePairs) 
      throws IOException{  
      URL url = new URL(urlString);
      URLConnection connection = url.openConnection();
      connection.setDoOutput(true);  //允许输出数据

      PrintWriter out = new PrintWriter(connection.getOutputStream());

      boolean first = true;
     [color=FF0000] for (Map.Entry<String, String> pair : nameValuePairs.entrySet())[/color]{  
         if (first) first = false; 
         else out.print('&'); 
         String name = pair.getKey();
         String value = pair.getValue();
         out.print(name);
         out.print('=');
         out.print(URLEncoder.encode(value, "GB2312"));  //请求正文采用GB2312编码
      }

我想问问大家红色地方怎么理解呀?这个for语句怎么不像其它的for(;;;)呀?

回复列表 (共5个回复)

沙发

说明这个map只能接受String类型的key和value

板凳

这个类似与C++中的模板,用于指明类型

3 楼

这个是jdk1.5中新增的泛型,表示map.entity这里面只能传两个String类型的值,比起以前来就更准确地定位类型,像以前list,是任何对象都可以存进去,如果用泛型的话,可以这样list<Integer>,就表示这个list里只能存Integer类型的数据

4 楼

自己顶上去

5 楼

原理相同,做个参考:
Object[] objs = new Object[5];

for (Object obj: objs){  //这句的实际作用于下面的方法一样,只是这样写简便多了
         
}

for(i = 0 ; i<objs.length; i++){
    Object obj = objs[i];
}

Map<String, String>泛型,3楼 已  表述

我来回复

您尚未登录,请登录后再回复。点此登录或注册