如何使用java存储、检索和更改值
我想在数组中保存项目编号、合作编号、合作行、数量,然后将该数组保存在数组列表中。对于数组列表中的一些记录,我希望根据CO编号和CO行检索该记录,并更改其数量。 最简单的方法是什么?也许存储在数组中,并将这些数组存储在数组列表中不是一个好主意。我在一个集成系统中进行开发。因此存在一些限制,如只能使用单个Java类文件等 这就是我迄今为止所尝试的如何使用java存储、检索和更改值,java,arrays,arraylist,Java,Arrays,Arraylist,我想在数组中保存项目编号、合作编号、合作行、数量,然后将该数组保存在数组列表中。对于数组列表中的一些记录,我希望根据CO编号和CO行检索该记录,并更改其数量。 最简单的方法是什么?也许存储在数组中,并将这些数组存储在数组列表中不是一个好主意。我在一个集成系统中进行开发。因此存在一些限制,如只能使用单个Java类文件等 这就是我迄今为止所尝试的 //Loop arraylist for (int i = 0; i < g_COList.size(); i++) { //Ge
//Loop arraylist
for (int i = 0; i < g_COList.size(); i++) {
//Get array
String[] CO = (String[]) g_COList.get(i);
coNumber = CO[0];
coLine = CO[1];
if (coNumber.equals("567780000") && coLine .equals("10")) {
g_COList.set(i, new String[] { "45", "567780000", "10", "5"});
}
}
//循环数组列表
对于(int i=0;i
谢谢你最好的方法是使用一个类,创建一个类CO来存储你的属性{item number,CO number,CO line…等等} 然后,每次您要将元素添加到arraylist时,它将是一个包含您的信息的对象,如下所示:
ArrayList<CO> list = new ArrayList<CO>();
CO object = new CO(.....); // filled with your informations
list.add(object);
您可以在ArrayList中存储普通数组,这是绝对正确的,为了性能起见,您可以使用C样式的for循环,因为与将数据存储在列表中的对象中然后遍历数组列表相比,此代码速度更快。如果您不是在大数据集上操作,我建议您在代码中利用面向对象编程。下面是您可以编写的代码\n 你的物品类别 这是遍历项目列表的方式 我假设getData()方法将为您提供项目列表,然后将对其进行处理。我正在创建另一个项目列表,其中包含您的新值
ArrayList<Items> list = getData();
List<Items> newList = list.stream()
.filter(items -> items.coNumber == 567780000L && items.coLine == 10L)
.map( items -> Items.builder()
.itemNumber(items.itemNumber)
.coNumber(items.coNumber)
.coLine(items.coLine)
.quantity(45L) //new quantity
.build())
.collect(Collectors.toList());
你能把你的代码放在这里吗?我上一篇文章很短,因为它只是由于互联网连接而不完整,你现在可以检查我的建议。如果我想检查CO编号和CO行并更改数量,怎么办?和我一样,我必须循环,对吗?Connumber和COline是第一项和第二项,所以你只需要得到第一项和第二项共同对象,并从中提取想要的信息,我将编辑我的答案,向你展示@RasangaAbeykoonI think@Karam u是如何误解我的问题的。每个CO对象都有这些CO编号、CO行、项目和数量。要求是循环遍历包含COs的数组列表,检索包含特定CO编号和CO行的CO,并更改该CO对象的数量。好的,我现在就知道了,所以很容易做到,我将编辑我的答案,向您展示@RasangaAbeykoon是如何做到的
@lombok.Getter
@lombok.Setter
@lombok.Builder
public class Items {
private long itemNumber;
private long coNumber;
private long coLine;
private long quantity;
}
ArrayList<Items> list = getData();
List<Items> newList = list.stream()
.filter(items -> items.coNumber == 567780000L && items.coLine == 10L)
.map( items -> Items.builder()
.itemNumber(items.itemNumber)
.coNumber(items.coNumber)
.coLine(items.coLine)
.quantity(45L) //new quantity
.build())
.collect(Collectors.toList());
list.stream()
.filter(items -> items.coNumber == 567780000L && items.coLine == 10L)
.forEach(items -> items.setQuantity(45L));