List,Map在遍歷的時候remove

List,Map在遍歷時remove裏邊的元素是會報異常的,所以我們要在遍歷之前聲明一個List,Map對象,用來存儲要刪除的元素,然後等遍歷完成之後,for循環之前聲明的List,Map,刪除遍歷裏邊的元素,具體例子如下:

contactsLists是遍歷的List,要刪除的List都放到了errorContactsList裏邊

List<ContactsList> errorContactsList = new ArrayList<ContactsList>();
      for (ContactsList contactsList : contactsLists)
      {
        if (contactsList.getName().trim().length() > NAME_LENGTH)
        {
          contactsList.setName(contactsList.getName().substring(0, NAME_LENGTH));
        }
        Matcher matcher = CELL_PHONE_PATTERN.matcher(contactsList.getPhone());
        if (!matcher.matches())
        {
          errorContactsList.add(contactsList);
        }
      }
      if (errorContactsList.size() > 0)
      {
        for (ContactsList contactsList : errorContactsList)
        {
          contactsLists.remove(contactsList);
        }
      }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章