Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java For循环不向数组添加点_Java_Android_String_Arraylist - Fatal编程技术网

Java For循环不向数组添加点

Java For循环不向数组添加点,java,android,string,arraylist,Java,Android,String,Arraylist,我有下面的for循环,它查看结果的字符串数组列表,字符串中的每个项用“:”分隔: arraylistresultsarray=MyClass.results; 整数numPoints=resultsArray.size(); 对于(int i=0;i请看以下代码: arrayPointName = new ArrayList <String>(); arrayPointDescription = new ArrayList <String>(); arrayPointCo

我有下面的for循环,它查看结果的字符串数组列表,字符串中的每个项用“:”分隔:

arraylistresultsarray=MyClass.results;
整数numPoints=resultsArray.size();
对于(int i=0;i请看以下代码:

arrayPointName = new ArrayList <String>();
arrayPointDescription = new ArrayList <String>();
arrayPointCoords=new ArrayList<GeoPoint>();
arrayPointName=newarraylist();
arrayPointDescription=新的ArrayList();
arrayPointCoords=新的ArrayList();
这三条语句——为变量分配新的空
ArrayList
引用——在循环的每次迭代中都会执行

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


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

您将coords用作ArrayList而不启动它。此外,您还为每个迭代启动arrayPointName、arrayPointDescription和arrayPointCoords,这就是为什么它们丢失了在上一次迭代中创建的值。它们应该被初始化在开始循环之前,先存储一次


如果您给我们一个resultsArray strring示例,您将很容易得到帮助。

每次迭代时,您都在for循环中创建一个新的
arrayPointName
实例,这意味着您将只在其中包含一个项目。解决问题的最佳方法是使用IDE的调试工具跟踪代码,这将花费您一段时间查找问题的时间为分钟数。因为您正在for循环内重新创建arrayPointName
arrayPointName = new ArrayList <String>();
arrayPointDescription = new ArrayList <String>();
arrayPointCoords=new ArrayList<GeoPoint>();