关于ArrayList求大神为我解析以下几个问题,求大神细细道来,万分感激

求大神为我解析以下几个问题:
1.为什么保存的时候还要调用getList() ?
2.为什么创建ArrayList?
3.if()里什么意思?
4. 第二段代码if{}最后一句什么意思?里边怎么就一个参数?
5。第二段代码倒数第四句和第三句都什么意思?
求大神细细道来,万分感激

public String getList() throws Exception {
        if ("".equals(curyear)) {
            curyear = "1";
        }

        guangGaoTouRuJiLuList = dao.getList(TrainingOrCompetitionID, curyear);
        sCKTGLList = scktglDao.getList(TrainingOrCompetitionID);
        cPYFSZList = cpyfszDao.getList(TrainingOrCompetitionID);

        super.getRequest().setAttribute("sCKTGLList", sCKTGLList);
        super.getRequest().setAttribute("cPYFSZList", cPYFSZList);
        yearMap = Common.getYearMap();

        return SUCCESS;
    }


public String getList_save() throws Exception {
        this.getList();

        List<GuangGaoTouRuJiLu> guangGaoTouRuJiLuList_temp=new ArrayList<GuangGaoTouRuJiLu>();

         //产品
        for (int j = 0; cPYFSZList != null && j < cPYFSZList.size(); j++) {
            CPYFSZ cpyfsz = cPYFSZList.get(j);
            //市场
            for (int i = 0; sCKTGLList != null && i < sCKTGLList.size(); i++) {
                SCKTGL scktgl = sCKTGLList.get(i);
                if (super.getRequest().getParameter("" + cpyfsz.getId() + "_" + scktgl.getId()) != null) {

                    guangGaoTouRuJiLu = new GuangGaoTouRuJiLu();
                    guangGaoTouRuJiLu.setChanPinID(cpyfsz.getId());
                    guangGaoTouRuJiLu.setShiChangID(scktgl.getId());
                    guangGaoTouRuJiLu.setNian(curyear);
                    guangGaoTouRuJiLu.setJinE(TypeChange.stringToDouble(super.getRequest().getParameter("" + cpyfsz.getId() + "_" + scktgl.getId())));
                    guangGaoTouRuJiLu.setTrainingOrCompetitionID(TrainingOrCompetitionID);
                   guangGaoTouRuJiLuList_temp.add(guangGaoTouRuJiLu);
                }
            }
        }

        dao.saveList(guangGaoTouRuJiLuList,guangGaoTouRuJiLuList_temp);
         //重新加载
        guangGaoTouRuJiLuList = dao.getList(TrainingOrCompetitionID, curyear);

        super.saveSuccess("");
        return SUCCESS;
    }



http://www.cnblogs.com/rickie/articles/67978.html

curyear应该是个标记吧,如果为空,则为一,可能是要分页显示么,创建Arraylist,直接储存多个数据,降低调用次数,降低工作量,使用getlist()确保在储存数据的时候,该list的数据和数据库里的数据一致,第二段if{}的最后一句是,你新建立的list为空的,要把你新增加的对象增加到该list里。第二段代码第三句是个for循,定义一个参数j,且sCKTGL
list不为空,范围是这个list的长度,就是遍历这个集合,第四句是得到该集合的第j个位置的对象,