2 exceptionmapping ExceptionMapping 于 2017.01.03 09:14 提问

List在debug下重复添加

代码如下:
public static void main(String[] args) throws IOException {

// GetLatAndLngByBaidu b = new GetLatAndLngByBaidu("");
List list = MockUtil.read("D:\Data\gongshang.txt");
// for (String string : list) {
// try {
// System.out.println(string + ":" + b.getByName(string));
// } catch (Exception e) {
// e.printStackTrace();
// }
// }

// 将经度纬度写入到文件里面
File file = new File("D:\Data\aaa.txt");

    OutputStream ot = null;

    Map<String, List> map = new HashMap<String, List>();

    ot = new FileOutputStream(file, true);
    byte[] by = null;
        List<String> listId = null;
        List<String> listNa = null;
        List<String> listlatlng = null;
    for (int i = 0; i < list.size(); i++) {
        String string = list.get(i);
        string = string.replaceAll(",", ":");
        string = string.replaceAll(":", "\r\n:");

        String[] str = string.split(":");



        if (map.get("1") == null) {
            // listId = new Vector<String>();
            listId = new ArrayList<String>();
        }/* else {
            listId = (ArrayList<String>) map.get("1");
        }*/
        listId.add(str[0]);
        map.put("1", listId);
        if (map.get("2") == null) {
            listNa = new ArrayList<String>();
        } /*else {
            listNa = (ArrayList<String>) map.get("2");
        }*/
        listNa.add(str[1]);
        map.put("2", listNa);
        if (map.get("3") == null) {
            listlatlng = new ArrayList<String>();
        } /*else {
            listlatlng = (ArrayList<String>) map.get("3");
        }*/
        listlatlng.add(str[2]);
        map.put("3", listlatlng);

// if (map.get("4") == null) {
// listNa = new ArrayList();
// } else {
// listNa = (ArrayList) map.get("2");
// }
// listNa.add(str[1]);
// map.put("2", listNa);
}
for (int j = 0; j < 3; j++) {
for (String string2 : (ArrayList) map.get((j + 1) + "")) {
by = string2.getBytes();
ot.write(by, 0, by.length);
ot.flush();
}
}
if (ot != null) {
ot.close();
}
}
-------------------------------我是分割线--------------------------------------
上面的代码:是在debug下按F6在listId.add(str[0]);处出现重复添加。循环里的i还是0

2个回答

bdmh
bdmh   Ds   Rxr 2017.01.03 09:26

你调试一下,看看string的值是不是每次都一样

ExceptionMapping
ExceptionMapping 还有C币
12 个月之前 回复
ExceptionMapping
ExceptionMapping 要不看这里吧,有图且详细:http://ask.csdn.net/questions/355119
12 个月之前 回复
ExceptionMapping
ExceptionMapping 但是其它的list,比如 listNa.add(str[1]);和listlatlng.add(str[2]);不会重复添加。
12 个月之前 回复
ExceptionMapping
ExceptionMapping 在for循环里头有3个string,但是他们的值都是不同的。我觉得这就是debug的原理问题。
12 个月之前 回复
smileinlife
smileinlife   2017.01.03 09:37

个人建议,IDE重启一下试试

ExceptionMapping
ExceptionMapping 还有C币
12 个月之前 回复
ExceptionMapping
ExceptionMapping 要不看这里吧,有图且详细:http://ask.csdn.net/questions/355119
12 个月之前 回复
ExceptionMapping
ExceptionMapping 我还真重启过
12 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!