Java For循环不向数组添加点
我有下面的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
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>();