gpt4 book ai didi

java - For 循环不会向数组添加点

转载 作者:行者123 更新时间:2023-12-01 07:32:32 27 4
gpt4 key购买 nike

我有以下 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)时,它们只包含一个点。知道这是为什么吗?

最佳答案

看看这段代码:

arrayPointName = new ArrayList <String>();
arrayPointDescription = new ArrayList <String>();
arrayPointCoords=new ArrayList<GeoPoint>();

这三个语句 - 为变量分配新的空 ArrayList 引用 - 在循环的每次迭代上执行。

它们应该出现在循环之前:您只想初始化变量一次(创建三个列表),然后在每次迭代中添加一个新项目。

顺便说一句,像这样填充多个集合通常是一个坏主意。通常最好创建一个封装相关数据(在本例中为名称、描述、坐标)的单一类型,然后创建该类型的单个项目集合。这通常更容易使用。

关于java - For 循环不会向数组添加点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16107574/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com