问题:ArrayList大小增加

时间:2011-04-01 07:44:34

标签: java android-emulator arraylist

在使用解析xml文件时,我正在返回类ArrayList的{​​{1}},但是对于此方法的每次调用都,ArrayList的大小从0到8增加8到16和24 ...而不是创建一个新的ArrayList对象

以下是代码:

Objects

在控制台中输出

public ArrayList<clsCategory> ParseCategoryXml(String fileToParse)
{
    try 
    {
        System.out.println("before XML Pasing Array size is = " + categoryArray.size());

            /** Handling XML */
            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();
            XMLReader xr = sp.getXMLReader();

            /** Send URL to parse XML Tags */
            //URL sourceUrl = new URL("http://d.mobrobot.com/feeds/npv1/categories_Fox.xml");
            FileInputStream inputFile = new FileInputStream(fileToParse);
            /** Create handler to handle XML Tags ( extends DefaultHandler ) */
            xr.setContentHandler(this);
            xr.parse(new InputSource(inputFile));
    }
    catch (Exception e) 
    {
        System.out.println("XML Pasing Excpetion = " + e);
    }
    System.out.println("XML Pasing Array size is = " + categoryArray.size());
    return categoryArray;
}

任何人都可以向我解释发生了什么吗?

2 个答案:

答案 0 :(得分:6)

我认为您不会在代码中的任何位置创建新的ArrayList,因此每次运行解析代码时,解析后的元素都会附加到旧代码中。

尝试类似:

categoryArray = new ArrayList<clsCategory>();

在方法开始时。

答案 1 :(得分:2)

看起来categoryArray不是局部变量,它是一个实例变量..这就是为什么每次调用它的大小都会增加..