程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-Java中list集合的問題

java-Java中list集合的問題

編輯:編程綜合問答
Java中list集合的問題

for(int i=0;i<all.size();i++)
{

                    if(all.get(i).getSno().equals(sno))
                        {
                            System.out.println("正在刪除的是:"+all.get(i).getSno());
                            all.remove(i);
                            flag=true;
                        }
                }
            for (int i = 0; i < all.size(); i++)
                {
                    System.out.println("正在保存的是:"+all.get(i).getSno());
                    String sno2= all.get(i).getSno();
                    String sname=all.get(i).getSname();
                    String sex=all.get(i).getSex();
                    int age=all.get(i).getAge();
                    String info=sno2+"#"+sname+"$"+sex+"^"+age+";";

                    //調用寫入數據的方法
                    try {
                        studentDao.saveFile("db\\student.txt",info,true);
                    } catch (Exception e) {
                        logger.error(e.getMessage());
                    }
                }
 ////////////////////////////////////////////////////////////////////
 for(int i=0;i<all.size();i++)
                    {

                        if(all.get(i).getSno().equals(sno))
                            {
                                System.out.println("正在刪除的是:"+all.get(i).getSno());
                                all.remove(i);
                                flag=true;
                            }
                            else
                            {
                                System.out.println("正在保存的是:"+all.get(i).getSno());
                                String sno2= all.get(i).getSno();
                                String sname=all.get(i).getSname();
                                String sex=all.get(i).getSex();
                                int age=all.get(i).getAge();
                                String info=sno2+"#"+sname+"$"+sex+"^"+age+";";

                        //調用寫入數據的方法
                        try {
                            studentDao.saveFile("db\\student.txt",info,true);
                        } catch (Exception e) {
                            logger.error(e.getMessage());
                            }
                    }

            }

db\student.txt中原本有
1001#Lucy1$男^33;
1002#Lucy2$男^33;
1003#Lucy3$男^33;
1004#Lucy4$男^33;
數據,然後通過編號1001來刪除這條數據,然後把剩下的數據重新寫到student.txt中,可是第一種方法中用if——else中如果刪除1001這條記錄,最後剩下的數據中有1003和1004這兩條數據,用兩個for循環正常這是為什麼?

最佳回答:


for循環裡面你對List進行了remove,這種有remove的需要從大往小,如果從小到大,remove後會報錯。

 for(int i=all.size()-1;i>=0;i--){
   all.remove(i);
 }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved