很奇怪,这两步并没有改变ll里面的值,不知道为什么??

解决方案 »

  1.   

    不要直接赋值,分开写,也方便debug,你这个应该是在循环中获取坐标数据再存到数组里,估计是引用问题,数组在哪创建的~ 检查一下
      

  2.   

    循环外面创建的呀!现在代码有部分变动 @RequestMapping(value = "/startend", method = RequestMethod.POST)
    public @ResponseBody String initData1(TravelDensityModel model){
    String str= "{ \"上海\": [121.4648,31.2891],"
    + "\"济南\": [117.1582,36.8701],"
    + "\"常州\": [119.4543,31.5582],"
    + "\"兰州\": [103.5901,36.3043],"
    + "\"包头\": [110.3467,41.4899],"
    + "\"盐城\": [120.2234,33.5577],"
    + "\"韶关\": [113.7964,24.7028]}";
    java.util.List<StationLL> list=stnllService.findByLL();
    logger.info(list.size());logger.info(list.toString());
    // BigDecimal[] ll=new BigDecimal[2];
    Map<String,BigDecimal[]> map=new HashMap<String,BigDecimal[]>();
    Iterator<StationLL> iter=list.iterator();
    // logger.info(iter.hasNext());
    // while(iter.hasNext()){
    // logger.info(iter.next());
    // StationLL sll=(StationLL)iter.next();
    // logger.info(sll);
    // ll[0]=sll.getLng();ll[1]=sll.getLat();
    // map.put(sll.getStation(), ll);
    // logger.info(ll[0]);
    // }
    for(int i=0;i<list.size();i++){
    // logger.info(list.get(i).getLat());
    StationLL sll=list.get(i);
    BigDecimal[] ll={sll.getLng(),sll.getLat()};
    map.put(sll.getName(), ll);
        }
    JSONObject jo=new JSONObject(map);

    return jo.toString();
    }