1. 程式人生 > >遍歷list集合過程中刪掉某個資料出錯

遍歷list集合過程中刪掉某個資料出錯

原始碼
List<Student> list = studentService.findBySpecialty(model.getSpecialty().getSpid());
for(Student student : list){
	Set<Replygroup> set = student.getReplygroups();
	if(set.size() != 0){
		boolean flag = true;
		Iterator<Replygroup> iterator = set.iterator();
		while(iterator.hasNext()){
			if(groupType.equals(iterator.next().getRgType())){
				flag = false;
				//當在這兒刪掉資料,然後到for那兒會直接跳出
				list.remove(student);
				break;
			}
		}
	}
}


修改如下

List<Student> list = studentService.findBySpecialty(model.getSpecialty().getSpid());
List<Student> listRemove = new ArrayList<Student>();
for(Student student : list){
	Set<Replygroup> set = student.getReplygroups();
	if(set.size() != 0){
		Iterator<Replygroup> iterator = set.iterator();
		while(iterator.hasNext()){
			if(groupType.equals(iterator.next().getRgType())){
				listRemove.add(student);
				break;
			}
		}
	}
}
list.removeAll(listRemove);

相關推薦

list集合過程某個資料出錯

原始碼 List<Student> list = studentService.findBySpecialty(model.getSpecialty().getSpid()); for(Student student : list){ Set<Reply

List集合的Map集合

首先遍歷list集合,在list集合中在遍歷map集合。 這裡使用到增強for,和Iterator迭代器迴圈map集合。 map集合:有多種遍歷方式(百度搜一下),這裡由於業務需求使用了迭代器Iterator, 直接上碼~~~ List<Map<String, Object&

list集合按照其中一個屬性分類放入Map

for (AppServerInfo appServerInfo : serverInfoList) { String envIp = appServerInfo.getEnvIp(); if (serverMap.keySet().contains(envIp)) {

javaList集合的三種方法

ring 方式 叠代器 AR array AD 循環 class ray List<String> list = new ArrayList<String>();list.add("aaa");list.add("bbb");list.add("cc

JSP頁面通過c:forEach標籤迴圈List集合

<c:forEach>標籤有如下屬性: 屬性 描述 是否必要 預設值 items 要被迴圈的資訊 否 無 begin 開始的元素(0=第一個元素,1=第二個元素) 否 0 end 最後一個元

List集合刪除元素的出現報錯

遍歷List集合刪除元素的出現報錯   遍歷List集合刪除元素的時候會發生索引越界異常或內容遍歷不全等問題。 例子: List<String> al = new ArrayList<String>();    al.

關於jslist集合,獲取select選中的值以及動態新增option

1,js遍歷list集合 js不能直接遍歷list集合,可以在後臺中將list集合封裝成json格式 封裝格式 JSONArray jsonArray = JSONArray.fromObject( list ); 然後在ajax中遍歷json格式的資料 jQuery.e

在for迴圈列表的過程不能刪除列表的元素

在刷題的時候碰到一件很有意思的事,就是在Python中用迴圈遍歷列表中元素的時候,感覺還是按照下標進行訪問的,這時如果刪除掉了已經遍歷到的元素的時候,那麼刪除元素之後的列表的下標會重新排序,但是迴圈還是按照迴圈開始的時候列表的下標進行訪問的,這時會導致有些元素訪

List集合的時候刪除單個(多個)元素(解決併發異常)

假設現在已經有一個大小為5的List集合[“一”,”二”,”三”,”四”] public List<String> init(){ list = new ArrayList<String>(); list.add("一"

為什麼for迴圈可以list:Python迭代器與生成器

1 引言 只要你學了Python語言,就不會不知道for迴圈,也肯定用for迴圈來遍歷一個列表(list),那為什麼for迴圈可以遍歷list,而不能遍歷int型別物件呢?怎麼讓一個自定義的物件可遍歷? 這篇部落格中,我們來一起探索一下這個問題,在這個過程中,我們會介紹到迭代器、可迭代物件、生成器,更進一

Java_集合過程刪除集合元素報錯的解決方案

問題描述:使用增強for迴圈遍歷集合,如果遍歷過程中去除第一個或者最後一個元素會報錯,去除中間的元素不會報錯:Exception in thread “main” java.util.ConcurrentModificationException 不知道這個是

Set集合remove不需要的資料List不能在的時候remove

for(Iterator<IAddress> it=addSet.iterator();it.hasNext();){ IAddress address = it.next(); if(address.getId() != null){ Boolean flag = false; f

【搬磚系列】如何在List時安全刪除集合元素

  1 public void testIterRemove() { 2 List l1 = new ArrayList(Arrays.asList(1, 2, 3, 4, 5)); 3 Iterator<Integer> i

Thymleafth:each標籤list如何獲取index

簡單介紹:傳遞給後臺一個String型別的list,需要獲取到list的每一個元素,然後進行篩選,得到正確的文字值,看程式碼就明白了 程式碼: //後臺java程式碼//failList是一個String型別的list,存放的是狀態碼00 01 02 03 04 05 06中的某幾種map.addA

JavaSet集合的方法

對 set 的遍歷 1.迭代遍歷: Set<String> set = new HashSet<String>(); Iterator<String> it = set.iterator(); while (it.hasNext()) {

javaList的map的幾種方法

 Stueng 類 public class Student { private String name; private int age; private int taller; public Student( String name, int age, int ta

js和jsplist物件

通常,我們需要從後臺接收list物件在前臺進行遍歷,現在有以下幾種方法可以使用: 方法一:(比較簡單,直接使用jstl標籤)。 首先在頭部引入jstl標籤: <%@ taglib prefix = "c" uri = "http://java.s

c:forEach 標籤map集合

java 後臺map 集合封裝 List<RoleRight> list = rrmapper.selectByROID(String.valueOf(role)); Map<String, List<Right>> map = new H

Java使用foreachlist的盲點,

我們通常在專案中會用到ArrayList ,喜歡使用jdk1.5以後的foreach進行對list集合遍歷,但是以下的操作會遇到小坑請看程式碼:public class TestListUtils {

在 jsp頁面list資料

        3)使用JSTL迴圈表示式方式(此方式不需要前提0,通過EL表示式${itemCategoryList}可以直接取出request中的屬性值):   <select name="category" class="select1" id="category">