gpt4 book ai didi

java - 将ArrayList添加到另一个ArrayList中

转载 作者:行者123 更新时间:2023-11-30 08:04:26 25 4
gpt4 key购买 nike

我有两个类(class):

产品:

01; Desinfectante
02; Aerosol
03; Limpia Vidrio
04; Desengrasante
05; Mata mosquitos
06; Mata cucarachas
07; Aceite en aerosol

说明:

01;1;Elevar la masa hasta llegar a tal punto;0;10
01;1;Mezclar este material con anterior;1;15
01;2;Relevar;2;5
01;3;Llevar;00;0
02;1;Descripcion;7;2
02;2;Descripcion;6;2
02;2;Descripcion;00;0
03;1;Descripcion;1;1
03;1;Descripcion;2;9
03;2;Descripcion;00;0
03;3;Descripcion;5;2
03;4;Descripcion;6;2
03;4;Descripcion;3;10
04;1;Descripcion;00;0
04;2;Descripcion;1;2
04;3;Descripcion;1;0
04;3;Descripcion;2;2
04;3;Descripcion;3;2
04;4;Descripcion;7;1
04;4;Descripcion;6;2
05;1;Descripcion;7;20
05;1;Descripcion;6;9
05;2;Descripcion;00;0
05;3;Descripcion;1;2
05;3;Descripcion;2;10
06;1;Descripcion;2;12
06;1;Descripcion;4;1
06;1;Descripcion;6;8
06;2;Descripcion;5;4
06;2;Descripcion;7;2
07;1;Descripcion;1;12
07;1;Descripcion;2;2
07;2;Descripcion;3;19
07;2;Descripcion;4;4
07;2;Descripcion;00;2
07;2;Descripcion;5;12

事情是这样的:我必须将指令 ArrayList 插入到产品中。它们之间的链接是第一个数字,即产品的代码。

我尝试了两件事,第一件事:

public static ArrayList<Productos> InsertInstInProd(ArrayList<Instrucciones> instructions, ArrayList<Productos> products)
{
for (int i = 0; i < products.size()-1; i++)
{
int n = 0;
for (int j = 0; j < instructions.size()-1; j++)
{
int first = products.get(i).getNumero();
int second = instructions.get(j).getCodProd();

if (first == second)
{
products.get(i).getInstr().get(n).setCodIns(instructions.get(j).getCodIns());
products.get(i).getInstr().get(n).setCodProd(instructions.get(j).getCodProd());
products.get(i).getInstr().get(n).setDescr(instructions.get(j).getDescr());
products.get(i).getInstr().get(n).setMat(instructions.get(j).getMat());
products.get(i).getInstr().get(n).setMatNec(instructions.get(j).getMatNec());

n++;
}
}
n = 0;
}

第二个:

public static ArrayList<Productos> InsertInstInProd(ArrayList<Instrucciones> instructions, ArrayList<Productos> products)
{
for (int i = 0; i < products.size()-1; i++)
{
int n = 0;
for (int j = 0; j < instructions.size()-1; j++)
{
int first = products.get(i).getNumero();
int second = instructions.get(j).getCodProd();

if (first == second)
{
products.get(i).setInstr(instructions);
n++;
}
}
n = 0;
}

return products;
}

最佳答案

由于

,您收到 NullPointerException
     products.get(i).getInstr().get(n).setCodIns(instructions.get(j).getCodIns());

您没有检查列表 products.get(i).getInstr() 是否有元素。当列表为空并且您以 products.get(i).getInstr().get(0) 方式访问它时,它会抛出 NullPointerException code> 因为试图获取空列表的第一个元素。因此,在执行此操作之前,请确保 products.get(i).getInstr() 不为空。

如果类型相同,可以直接添加整个数组列表:

   products.get(i).getInstr().addAll(instructions); // again make sure that is not empty.

如果您只想替换,请使用:

    products.get(i).setInstr(instructions.get(j)); 

关于java - 将ArrayList添加到另一个ArrayList中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31352984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com