【发布时间】:2013-04-19 14:59:04
【问题描述】:
我有以下 for 循环,它查看结果的字符串 ArrayList,字符串中的每个项目都由“::”分隔:
ArrayList<String> resultsArray = MyClass.results;
Integer numPoints = resultsArray.size();
for (int i =0;i<numPoints;i++){
String[] pointDetails = resultsArray.get(i).split("::");
String pointName = pointDetails[0];
String pointDescription = pointDetails[1];
String coordinates = pointDetails[2];
//Turn coordinates into geopoints
String coord[] = coords.split(",");
Integer lng= (int) (Double.valueOf(coord[0]) * 1000000);
Integer lat = (int)(Double.valueOf(coord[1])*1000000);
GeoPoint gPoint = new GeoPoint(lng,lat);
arrayPointName = new ArrayList <String>();
arrayPointDescription = new ArrayList <String>();
arrayPointCoords=new ArrayList<GeoPoint>();
arrayPointName.add(pointName);
arrayPointDescription.add(pointDescription);
arrayPointCoords.add(gPoint);
}
我知道我在初始字符串 ArrayList 中有 20 个点,并且已经打印出它的大小来检查这一点。但是,当我打印出新的数组列表(例如 arrayPointName)时,它们只包含一个点。知道为什么会这样吗?
【问题讨论】:
-
每次迭代时,您都会在 for 循环中创建
arrayPointName的新实例,这意味着您将永远只有一个项目。 -
解决问题的最佳方法是使用 IDE 的调试工具跟踪您的代码,这将花费您几分钟的时间来定位问题。
-
因为您在 for 循环中重新创建了 arrayPointName
标签: java android string arraylist