程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> list-List 存放 Map 的get的前面元素 被覆蓋 ,求解

list-List 存放 Map 的get的前面元素 被覆蓋 ,求解

編輯:編程綜合問答
List 存放 Map 的get的前面元素 被覆蓋 ,求解

<%
List listMainBoard =(List) mapboard.get(new Integer(0));
Board mainBoard=new Board();

                        for(int i=0;i<listMainBoard.size();i++)
                        {
                            //循環取得主版塊
                            mainBoard=((Board)listMainBoard.get(i));

                    %>
                    <tr>
                        <td colspan="4"><%=mainBoard.getBoardName() %></td>
                    </tr>
                    <%
                        //子版塊
                **List listSonBoard =(List)mapboard.get(new Integer(mainBoard.getBoardId()));**
                    //out.print(mainBoard.getBoardId()); 返回主版塊ID,即parentId 為 0
                    if(listSonBoard!=null){
                for(int j=0;j<listSonBoard.size();j++)
                        {
                            //循環取得子版塊
                            Board sonBoard=(Board)listSonBoard.get(j);
                            //最後發表的主題
                            Topic topic =new Topic();
                            //最後發表的作者
                            User user=new User();
                            int boardId =sonBoard.getBoardId();
                            //取得該版塊的主題列表
                            List listTopic=new TopicDAO().findListTopic(1, boardId);

                            if(listTopic!=null&&listTopic.size()>0)
                            {
                                //取的最後發表的帖子
                                topic=(Topic)listTopic.get(0);
                                user=new UserDAO().findById(topic.getuId());
                                out.print("用戶:"+user.getuName());
                            }
                    %>
                    List listSonBoard =(List)mapboard.get(new Integer(mainBoard.getBoardId())); 這邊只保存了map的最後一組元素,前面的被覆蓋了,怎麼回事啊,求解答,謝謝

最佳回答:


因為你是在for循環裡定義的listSonBoard,這時候每循環一次時的listSonBoard都是一個新的集合,所以之前的listSonBoard中的內容都沒了,你應該在for循環的外部定義List listSonBoard=new ArrayList();然後在for循環的時候listSonBoard.add()將新增的內容添加到集合裡面。

Mr_LuFengChao
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved