Set集合按條件刪除元素

1. 循環對比,對Set進行遍歷對比.相同則刪除.spa

  注: 1.不能在for循環中刪除,這樣會引發Set的size();變化,進而程序報錯.code

     2.不能在foreach中使用set.remove(Object obj);方法對象

    正確的是使用迭代器,利用其迭代器對象的remove()方法,但必須保證在使用remove()以前調用迭代器的next()方法;blog

    部分代碼示例以下:(要刪除tempXaxis集合中與statDate相同的元素,其中tempXaxis的類型爲HashSet)rem

...
  Iterator<Date> tempXaxisIterator = tempXaxis.iterator();
  while (tempXaxisIterator.hasNext()) {
    Date next = tempXaxisIterator.next();
    for (MosStat mosStat : mosStats) {
      Date statDate = mosStat.getStatDate();
      if (next.equals(statDate)) {
        tempXaxisIterator.remove();
      }
    }
  }
...
           

2. 利用集合的contains,判斷元素是否在集合中,然後調用集合的remove()方法進行元素刪除;get

  示例代碼:it

...
  for (MosStat mosStat : mosStats) {
    Date statDate = mosStat.getStatDate();
    if (tempXaxis.contains(statDate)) {
      tempXaxis.remove(statDate);
    }
  }
...
相關文章
相關標籤/搜索