List中remove()方法移除不了数据,达人快来~ java中list.remove方法使用
vba\u4e2dcollection\u7684remove\u53ef\u4ee5\u4ece\u4e2d\u95f4\u79fb\u9664\u5417\u53ef\u4ee5\u554a\u3002
\u521b\u5efaCOLLECTION\u5bf9\u8c61\uff0c\u52a0\u5165\u5143\u7d20\u65f6\uff0c\u6bcf\u4e2a\u5143\u7d20\u90fd\u6709KEY\u3002\u6839\u636eKEY\u53ef\u4ee5\u5220\u9664
/*\u6211\u53c8\u6539\u4e86\u6539\uff0c\u54ce\uff0c\u8fd8\u8981\u5728\u5b66\u4e60\u554a\uff0c^_^*/
public List updateProduct(List lists,String[] productId1) throws Exception{
Connection conn=null;
PreparedStatement prep=null;
ResultSet rs=null;
List all=new ArrayList();
/*
for (int i=0;i<productId1.length;i++)
{
lists.remove(new Integer(productId1[i]));
}
*/
for(int i=0;i<productId1.length;i++) {
String pid=productId1[i].trim();
for(int j=0;j<lists.size();j++) {
String oneid=(String)lists.get(j);
oneid=oneid.trim();
if(pid.equals(oneid)){
lists.remove(j);
System.out.println("sxp debug:remove the id "+oneid);
break;
}
}
}
System.out.println();
try{
for(int i=0;i<lists.size();i++)
{
//Product product1=(Product)lists.get(i);
//int productId=product1.getProductId();
String tempid=(String)lists.get(i);
tempid=tempid.trim();
int productId=Integer.parseInt(tempid);
System.out.println("\u5269\u4e0b\u7684\u5546\u54c1Id="+productId);
String sql="select * from product where productId ="+productId;
conn= new DBConnection().getConnection();
//System.out.println("sql11111111111111="+sql);
prep=conn.prepareStatement(sql);
rs = prep.executeQuery();
while (rs.next()){
Product product=new Product();
product.setProductId(rs.getInt("productId"));
product.setProductCode(rs.getString("productCode"));
product.setProductName(rs.getString("productName"));
product.setUnit(rs.getString("unit"));
product.setPremark(rs.getString("premark"));
all.add(product);
}
}
}finally{
if(prep!=null)
prep.close();
if(prep!=null)
prep.close();
if(conn!=null)
conn.close();
}
return all;
}
public boolean equals(Object object){
if(object instanceof User){
User user = (User)object;
// 我这里是用id来比较,如果User没有id属性,也有用账号、身份证号等属性来比较。
return user.getId().equalsIgnoreCase(this.id);
}else{
return false;
}
}
从List中删除某个对象,是要调用对象的equals方法,和List中的对象相比较,相等才删除。如果不重装equals方法,那么调用的就是父类Object的equals方法,这样是用 == 相判断相等的。只有两个变量指向的是同一个对象,== 判断才会相会。
String s1 = new String("a");
String s2 = new String("a");
s1 == s2 为false.
s1.equals(s2) 为 true.
如果是这样,建议你重载hashCode方法。否则,当你用User对象作为Key放到HashMap中时,还会出现问题。
1、使用List的前提条件是:必须重写equals和hashcod方法,String等类都给你写好了 你可以不写;但是,你自己定义的类要重写;
2、当你用iterator遍历取直的时候,必须用iterator里的remove方法删除东西,而不是Collection里的remove方法,否则有可能出错,但不是一定出错。
看看你romveAll方法里面的条件
如果是if(项目经理.equals(b.getint(i)))
b.romve(i)
的话就可能出错
建议改成if(项目经理.getID().equals(b.getInt(i).getID()))
b.romve(i)
绛旓細1銆乸ython鍒犻櫎鍒楄〃涓寚瀹氬厓绱犵殑鏂规硶銆2銆佷唬鐮佸疄渚嬶紝鍒涘缓涓涓垪琛ㄣ3銆佹墦鍗板畾涔夌殑鍒楄〃锛屼娇鐢╬rint()銆4銆佸垹闄ゅ垪琛ㄤ腑鐨勬寚瀹氬厓绱狅紝浣跨敤remove()銆5銆佸啀娆℃墦鍗板垹闄ゅ厓绱犲悗鐨勫垪琛ㄣ6銆佸垪琛鐨剅emove()鏂规硶鍏朵粬娉ㄦ剰浜嬮」銆
绛旓細鐩存帴鐢╩emberView.remove(0)灏卞彲浠ュ垹闄ょ涓鏉¤褰曘
绛旓細1銆佹枃浠--銆嬫柊寤--銆嬮」鐩2銆侀夋嫨涓猴細鎺у埗鍙板簲鐢ㄧ▼搴--銆嬪懡鍚嶄负锛氶氳繃ArrayList闆嗗悎鎻掑叆鍜屽垹闄ゅ厓绱--銆嬬‘瀹氥3銆佺郴缁熺敓鎴鐨浠g爜銆4銆佸鍏ュ懡鍚嶇┖闂村拰瀹炰緥鍖栧璞°5銆佹坊鍔犲嚑涓厓绱犵敤浜庢彃鍏ュ厓绱犲墠鐨勬祴璇曘6銆佸悜鎸囧畾浣嶇疆鎻掑叆涓涓厓绱犮7銆佹祴璇1锛氬垹闄ゅ厓绱犮
绛旓細褰撹皟鐢remove锛0锛夋椂锛宭ist浼氱Щ闄杩欎釜鍏冪礌锛岃繖涓椂鍊list閲岄潰鐨勫厓绱犲氨鍙樻垚b锛宑锛屽搴旂殑绱㈠紩鍊煎垎鍒负0,1銆傝繖涓椂鍊list鐨size宸茬粡鍙樻垚浜2锛屼絾鏄妤间富鐨刦or寰幆鐨勮瘽锛屽惊鐜殑涓婇檺杩樻槸鏈寮濮嬬殑list鐨剆ize鍊硷紝涔熷氨鏄3銆傚姝や笅鍘绘瘡绉婚櫎涓涓厓绱犵殑鏃跺欙紝list鐨勭储寮曞彇鍊艰寖鍥撮兘浼氬彉灏忥紝鏈鍚庡鏋渞emove锛坕锛変腑i...
绛旓細灏remove()杩欎釜鏂规硶鏉ヨ,list鏈変袱涓,閲嶈浇褰㈠紡,set鍙湁涓涓!浣犳墍璇寸殑寮瑰嚭,鏄痩ist鍦ㄦ帴鍙梚nt绫诲瀷鐨勬儏鍐,浼氬脊鍑鸿鍒犻櫎鐨勫璞!杩欎釜鍔熻兘鍙湁list鏈,涓轰粈涔堟湁?list搴曞眰鏄暟缁,鏁扮粍浣犵煡閬撳綋鐒跺彲浠ユ帴鍙楁寚瀹氫笅鏍囦簡,set涔熷緢鎯虫湁杩欐牱鐨勫姛鑳,浣嗘槸瀹冩病鏈 set搴曞眰鏄暟鎹粨鏋勪笉涓鏍,娌″姙娉曞幓鎸囧畾涓嬫爣鍟,鍔熻兘鑲畾鏄秺...
绛旓細鍦–#鐨凩ist<T>绫诲瀷涓 鏈変竴涓嚱鏁板彨鍋Remove锛鎮ㄧ殑鍊硷級灏卞彲浠ョЩ闄ゆ寚瀹氱殑涓琛屾暟鎹 灏ゅ叾鏄偍鐨凷tring绫诲瀷 浣嗘槸鎮ㄨ娉ㄦ剰锛氬鏋滄湁涓や釜String鍐呭鐩稿悓 渚嬪杩欎釜List鏈変袱涓瓧绗 閭d箞list.Remove("A")灏变細绉婚櫎涓よ銆傚彟澶栨偍鐨勬兂娉曟槸绉婚櫎鍖呭惈鏈夋寚瀹氬瓧绗︾殑.閭d箞鎮ㄥ彲浠ヨ繖鏍峰啓 list.Remove(list.First(obj=>{...
绛旓細鑷繁鍐欎釜绫诲疄鐜List鎺ュ彛锛屽湪remove鏂规硶涓笉鏀瑰彉index銆備絾鎵璋揕ist灏辨槸鏈夊簭鐨勬暟鎹泦鍚堬紝remove鍚庝笉鏀瑰彉index杩欑浣滄硶鏈韩灏辨湁閫昏緫闂锛屽彲鑳戒細浜х敓涓嶅彲棰勮鐨勫悗鏋溿
绛旓細remove鏈2涓鏂规硶锛歱ublic E remove(int index); //绉婚櫎浣嶇疆涓婄殑 public boolean remove(Object o); //绉婚櫎鍏冪礌 褰撻摼琛ㄦ槸int鏁版嵁鍨嬫椂锛list.remove(2)浼氶粯璁よ皟鐢ㄧ涓涓嚱鏁 鑻ユ兂璁﹍ist璋冪敤绗簩涓嚱鏁帮紝淇敼涓簂ist.remove((Object) 2)
绛旓細list.remove(i);i--;} }*/ //2.鍙嶅悜閬嶅巻 /*for(int i = list.size() - 1;i >= 0;i--){ String b = list.get(i);if(b.equals("502323232")){ list.remove(i);} }*/ //瑙e喅鏂规:璋冪敤Iterator鐨剅emove()鏂规硶瀹夊叏鍒犻櫎鍏冪礌,閬垮厤寮傚父 Iterator<String> iter = list.iterator();...
绛旓細/*鎴戝張鏀逛簡鏀癸紝鍝庯紝杩樿鍦ㄥ涔犲晩锛宆_^*/ public List updateProduct(List lists,String[] productId1) throws Exception{ Connection conn=null;PreparedStatement prep=null;ResultSet rs=null;List all=new ArrayList();/ for (int i=0;i<productId1.length;i++){ lists.remove(new Integer(...