Java 8如何从一个ArrayList中复制指定索引的单个元素到另一个ArrayList
实现方法
核心逻辑
要实现按索引取单个元素存入目标集合,只需要用到ArrayList自带的两个基础方法:
get(int index):获取集合中指定索引位置的元素add(E e):将元素添加到目标集合末尾
注意你定义的两个集合存储的对象类型不同:listaProductos存Producto类对象,listaPedido存Pedido类对象,需要先把取出的Producto对象封装为Pedido对象后再存入目标集合。
完整代码示例
首先要先做索引合法性校验,避免触发IndexOutOfBoundsException索引越界异常:
// 入参为用户选中的产品索引 public void addSelectedProductToPedido(int productIndex) { // 索引合法性校验:索引必须在 [0, 产品集合长度-1] 区间内 if (productIndex < 0 || productIndex >= listaProductos.size()) { System.out.println("所选产品不存在,请输入合法的产品索引"); return; } // 1. 从产品集合取出对应索引的产品对象 Producto targetProduct = listaProductos.get(productIndex); // 2. 封装为Pedido对象,构造方法参数根据你自己的Pedido类定义调整即可 // 示例假设Pedido类构造方法需要传入产品对象、购买数量两个参数 Pedido pedidoItem = new Pedido(targetProduct, 1); // 3. 添加到订单集合 listaPedido.add(pedidoItem); }
注意事项
- 如果你的
Pedido类字段和Producto完全一致,不要直接做类型强转,建议给Pedido类新增接收Producto参数的构造方法,在构造方法内完成字段赋值 - 如果你的
Producto类包含自定义引用类型的成员变量,需要深拷贝的话可以自己重写拷贝方法,普通大学作业场景直接赋值即可满足需求
内容的提问来源于stack exchange,提问作者AhmedSHA256
相关产品推荐
相关产品推荐

