为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容森 2021-05-19 14:11:17
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就对了
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

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)。

也可以循环找出要删除的数的下标然后这个方法删除

查看完整回答
反对 回复 2021-05-23
?
千万里不及你

TA贡献1784条经验 获得超9个赞

因为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对象就是个空。

查看完整回答
反对 回复 2021-05-23
  • 3 回答
  • 0 关注
  • 241 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信