for迴圈可以修改物件內容 , 但是重新賦值無效 , 另外不可以刪除和新增元素
集合或者陣列中 , 存放的是物件的引用 , 而不是對本身 , 對於字串來說 , 存的就是這個字串, 而不是這個字串物件
如果你在迴圈中修改字串, 其實是對字串重新賦值 , 但是原本字串的那個引用, 是沒有發生改變的 , 所以修改沒有用
如果你放的是乙個物件 , 比如person, 那麼你可以在迴圈中對person這個物件中的屬性進行修改 , 比如修改他的 age屬性 , 但是不能重新賦值, 也就是不能用 p = new person(); **不會報錯 , 但是這個操作不會影響集合中這個元素的內容
另外 ,增強for迴圈其他地方都和普通for迴圈一樣, 唯一的不同是 , 他不能獲得集合的下標 , 也就是說不能對指定位置的元素進行處理 , 只能根據元素本身的屬性進行一系列判斷
上面這段文字是網上獲取,忘記**。
增強for注意
public
static
void
testforeach()
//1.資料庫查詢出列表
// listplist = persondao.getlist();
//2. 修改值
for (person person : plist)
//3. 重新插入
// persondao.batchinsert(plist);
for (person person : plist)
}
list的set方法
public
static
void
testsetfunction()
//列印值
for (person person : plist)
//2. 修改後的值
for (int i = 0; i < plist.size(); i++)
for (person person : plist)
}
新增乙個list
public
static
void
testnewlist()
//列印值
for (person person : plist)
//2. 修改後的值
listnewlist = new arraylist();
for (person person : plist)
for (person person : newlist)
}
iterator迭代器
public
static
void
testiterator()
//列印值
for (person person : plist)
//2. 修改後的值
iteratorit = plist.iterator();
while (it.hasnext())
iteratorit2 = plist.iterator();
while (it.hasnext())
}
copyonwritearraylist
public
static
void
testcopyonwritearraylist()
//列印值
for (person person : plist)
//2. 修改後的值
for (person person : plist)
//列印
for (person person : plist)
}
python中改變list中list值的問題
l s 0,0,0 for i in range 3 l 1 1 1 print l 如上 定義乙個空list,新增元素也為list型別。本意是想改變list l中乙個值,使其結果為 0,0,0 0,1,0 0,0,0 但執行的結構下圖所示,將list l中的所有元素都改變了。為找到原因,檢視pyt...
迴圈中刪除List中的元素
remove 方法刪除元素後會立刻更新list的size,因此index也發生了變化,會導致漏掉某些元素。for int i 0 i解決方案一 在刪除某乙個元素後直接break,當然這種情況只適合刪除乙個特定元素,不適合刪除多個元素 解決方案二 index回退一位,如下 for int i 0 i刪...
List迴圈輸出時刪除元素
listlists new arraylist lists.add ad lists.add dv lists.add dvs lists.add adf for int i 0 isystem.out.println s 結果dvs adf因為你在lists.remove s 的時候,ad被刪除了...