这里有一个关于java的问题,在list.remove方法使用?

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就对了

慕容森
浏览 242回答 3
3回答

蝴蝶刀刀

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)。也可以循环找出要删除的数的下标然后这个方法删除

千万里不及你

因为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对象就是个空。
打开App,查看更多内容
随时随地看视频慕课网APP