java中list.remove方法使用

publicListupdateProduct(Listlists,String[]productId1)throwsException{Connectionconn=n... 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]));

}
System.out.println();
try{
for(int i=0;i<lists.size();i++)
{
Product product1=(Product)lists.get(i);
int productId=product1.getProductId();

System.out.println("剩下的商品Id="+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;
}

比如lists里面有51,52,58,59四个数,如何删除productId1中51,52这两个数
可是如果我不知道要删除元素的位置该怎么办呢 不能根据public E remove(int index) 来删除,
而且我想删的是数组中的一个或多个,product【i】也不是int型 也不能用lists.remove(new Integer(productId1[i])); 删除; 该怎么删除 string 型 productId1【i】值 虽然知道productId【i】的值是int型 我修改了下 for (int i=0;i<productId1.length;i++)
{

lists.remove(new Integer(new Integer(productId1[i]).intValue()));
System.out.println("测试输出="+new Integer(productId1[i]).intValue());

}

输出结果 测试输出=58
测试输出=59
剩下的商品Id=58
连接数据库成功
剩下的商品Id=59
连接数据库成功
剩下的商品Id=60
连接数据库成功
剩下的商品Id=61
连接数据库成功

可惜还是没删掉 如果剩下商品Id只有60,61就对了
展开
 我来答
希茜Cqa68
推荐于2017-10-12 · TA获得超过1238个赞
知道小有建树答主
回答量:860
采纳率:0%
帮助的人:1073万
展开全部
/*我又改了改,哎,还要在学习啊,^_^*/
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("剩下的商品Id="+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;
}
百度网友a7c2114
2009-05-21 · TA获得超过306个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:181万
展开全部
ArrayList下的remove方法:

public boolean remove(Object o)

移除此列表中首次出现的指定元素(如果存在)。如果列表不包含此元素,则列表不做改动。更确切地讲,移除满足 (o==null ? get(i)==null : o.equals(get(i))) 的最低索引的元素(如果存在此类元素)。如果列表中包含指定的元素,则返回 true(或者等同于这种情况:如果列表由于调用而发生更改,则返回 true)。

因为int是object的子类,所以可以传入int类型参数来删除.
-----------------------------------------------------------

public E remove(int index)

移除此列表中指定位置上的元素。向左移动所有后续元素(将其索引减 1)。

也可以循环找出要删除的数的下标然后这个方法删除
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
推荐于2017-10-10 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1732万
展开全部
因为list是有顺序的,先add的编号就小(从0开始),这样就可以通过remove(编号)的形式进行删除,之后后面的会编号依次变小(也就是说编号总是连续的)。举例:
List list = new linkedList();
list.add("0");
list.add("1");
list.remove(0);
结果就是:list.get(0) =1;
备注:如果再一次“list.remove(0);”那么list对象就是个空。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xubaotong88
2009-05-21 · 超过24用户采纳过TA的回答
知道答主
回答量:173
采纳率:0%
帮助的人:99万
展开全部
看你是用什么方法,可以用很多办法了呀;如果知道前两个,可以直接删除就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式