1. 程式人生 > >List中add資料重複覆蓋分析

List中add資料重複覆蓋分析

給一個list使用add()方法是,list的size()正確增長,但是之前進入的元素會被最後一個進入的元素覆蓋。這裡特指你加入的元素是某個BEAN元素,且這個bean被你在呼叫的類中定義成域成員,並例項化了。這時候你再迴圈改變bean裡的內容add()到list中,那麼根據java的物件存的是地址的原理,你的list裡全是那個例項化bean的地址,最後元素值就全都一樣,並且取的是最後一次改變的值。 解決辦法是bean被你在呼叫的類中定義成域成員時不要例項化,到迴圈內部再例項化,這樣就保證了每一個add到list裡的物件都是new出來的。

正確的使用方法是

for (int i = 0 ; i < listQ.size(); i++){
ProductCollection proC = new ProductCollection();
User user = basicDao.find(listQ.get(i).getUserId(), User.class);
proC.setUserName(user.getUserName());
proC.setIsList(listQ.get(i).getIsList());
proC.setqFileuploadDate(listQ.get(i).getqFileuploadDate());
proC.setqListuploadDate(listQ.get(i).getqListuploadDate());
list.add(proC);
}
而不要將ProductCollection proC = new ProductCollection();放在for迴圈外面

相關推薦

Listadd資料重複覆蓋分析

給一個list使用add()方法是,list的size()正確增長,但是之前進入的元素會被最後一個進入的元素覆蓋。這裡特指你加入的元素是某個BEAN元素,且這個bean被你在呼叫的類中定義成域成員,並例項化了。這時候你再迴圈改變bean裡的內容add()到l

listMap合併重複資料(mapkey相等的value值相加)

public static void main(String[] args) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

統計List的元素重複出現的次數 【轉】

 原連結地址  https://blog.csdn.net/chengyabingfeiqi/article/details/49906875   import java.util.ArrayList; import java.util.Collectio

Java 多執行緒均勻處理同一個List資料

需求:使用多執行緒來處理同一個List中的資料,希望每個執行緒處理的數量是均勻的 事例程式碼如下: public class Test { static class HandleThread extends Thread { private Str

把一個list資料按一定的條件進行分類

private static List<Map<String, Object>> listTO2 = new ArrayList<Map<String, Object

Java ArrayList使用技巧 - 從第一個List去除所有第二個List與之重複的元素

需求:從 mAllList 中去除所有 mSubList 中與之重複的元素 測試資料:mAllList 中包含100000個無序無重複字串,mSubList 中包含50000個無序無重複字串   方法一、ArrayList中提供的removeAll方法(效率最低) mAllList

C#讀取SharePoint的List資料及操作SharePoint

一般SharePoint都有提供一個webservice來訪問、操作SharePoint的各項資料。 地址一般為http://server/_vti_bin/Lists.asmx 下面是一個簡單的讀取SharePoint List資料的例子:       &

統計List的元素重複出現的次數

import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.uti

如何判斷一個list是否存在重複

方法一:  bool b= lst.GroupBy(l=>l.Name).Where(g=>g.Count()>1).Count()>0; 方法二: lst.ToDictionary(o => { return o.name; });不

vue使用some刪除list資料

在vue中可以使用some方法查詢需要刪除的所以 this.list.some((item, i) => { if (item.id == id) { this.list.splice(i, 1) return true; } }) 也可使用findI

for迴圈刪除List資料產生的問題

在應用中大家可能會碰到一些場景 比如 一個listview 刪除選中條目 這需要去查詢選中項並移除 但是list 集合 座標會前移 所以第二次刪除的時候就會有找不到的清空也就是空指標或者其他問題

在 jsp頁面遍歷list資料

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

java統計List的元素重複出現的次數

package net.javaer.demo; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; i

List集合實現分組,獲取list部分資料

list為原先的總集合,newlist為獲取特定區域後集合,pageindex表示選擇的特定頁碼資料,每頁十條 if(pageIndex*10>list.size()){ newlist=list.subList((pageIndex-1)*10, list.size

Java實現List資料分類

場景:需要把考生進行分類處理。已知考生在一個List容器中。考生有所屬機構。分析:如何才能把List中的考生分類呢?有考生id,有機構id,有機構名稱,而且我應該按照機構id進行分類。思考:按照什麼進行分類處理?考生所屬機構。建立一個CandidateOrg類,類中擁有org

java集合list資料按照多個屬性分組

如果按照一個屬性分組,請參照下面的文章:http://blog.csdn.net/liuxiao723846/article/details/46518553 如果按照多個屬性對集合中的資料進行分組,需要把分組欄位拼接起來聯合比較,程式碼如下: import java.u

python學習筆記--列印巢狀list每個資料(遍歷列表)

遍歷new_list列表中元素 new_list = ["H1","H2",1999] for each_list in new_list: print (each_list); 若列表中包含巢狀列表,怎樣處理? 笨方法:判斷列表中元素是不是列表;並繼續使用f

C#對List資料進行取交集、並集、差集和去重操作的方法

第一步:定義兩個list並進行初始化 public List<string> GetList1()         {             List<string> lis

List資料根據時間排序-倒序

private static void ListSort(List<News> list) { Collections.sort(list, new Comparator&l

ListAdd()與AddAll()的區別

只有一個 pri bsp str 方法 實例 合作 ger dal 我們在開發過程中經常會使用到List<Object> list=new ArrrayList<>(); 這個集合,Object 也可以是String、Integer等。 當我們需要