当前位置: 首页 > 知识库问答 >
问题:

ArrayList插入多个元素

岳彬炳
2023-03-14

我是Vaadin和Java的新手,我正在处理以下问题:

在下面的代码中,我想在ArrayList“newList”中添加多个元素。如你所见,名为“ps”的元素有5个子元素。

问题是,在ArrayList中添加的当前(循环中的)元素替换了每个索引中所有先前的元素,结果它最终只返回最后一个“ps”元素,循环发生的次数是多少。

和代码:

Collection<?> itemIds =  table.getItemIds();
Item item = null;
PS_SECTION ps = new PS_SECTION();
List<PS_SECTION> newlist = new ArrayList<PS_SECTION>();
int i = 0;

             for(Object itemId : itemIds){   

                    item = table.getItem(itemId);// row
                    Long s1 = (Long) item.getItemProperty("ID").getValue();
                    String s2 = item.getItemProperty("ΕΝΟΤΗΤΑ").getValue().toString();
                    Long s3 = (Long) item.getItemProperty("ΔΙΑΤΑΞΗ").getValue();
                    Long s4 = 0L;
                    Long s5 = 0L;

                    ps.setPS_SECTION(s1);
                    ps.setNAME(s2);
                    ps.setVORDER(s3);
                    ps.setISACTIVE(s4);
                    ps.setISGLOBAL(s5);

                    newlist.add(ps);
                    i++                     
                 }

共有1个答案

宇文航
2023-03-14
Collection<?> itemIds =  table.getItemIds();
Item item = null;
PS_SECTION ps = null; // Declare first ps to null, because you will instantiate it later
List<PS_SECTION> newlist = new ArrayList<PS_SECTION>();
int i = 0;

             for(Object itemId : itemIds){   

                    item = table.getItem(itemId);// row
                    Long s1 = (Long) item.getItemProperty("ID").getValue();
                    String s2 = item.getItemProperty("ΕΝΟΤΗΤΑ").getValue().toString();
                    Long s3 = (Long) item.getItemProperty("ΔΙΑΤΑΞΗ").getValue();
                    Long s4 = 0L;
                    Long s5 = 0L;

                    ps = new PS_SECTION() // put it here your instantiation
                    ps.setPS_SECTION(s1);
                    ps.setNAME(s2);
                    ps.setVORDER(s3);
                    ps.setISACTIVE(s4);
                    ps.setISGLOBAL(s5);

                    newlist.add(ps);
                    i++                     
                 }

在设置值之前,请尝试将实例化放在循环中。就像上面的代码一样。

在循环中实例化ps_section的原因是创建该对象ps_section的新实例。如果您在循环之外实例化它,那么您只是创建了一个要在循环中使用的对象,这就是为什么您在数组列表中添加的都是相同的对象的原因。

 类似资料:
  • html2CAN as可以发送多个元素(除了document.body)吗?如果我不想生成一个基于页面中几个元素的图像,并且有几个元素我不想渲染...如何编辑此代码? 顺便说一句,窗户。open意味着我不想在不同的页面上显示图像,同时不干扰原始html数据。

  • 问题内容: 我有一堆索引,我想从中删除这些索引中的元素。我无法做一个简单的s 序列,因为每次移除后元素都会移动。我该如何解决? 问题答案: 按降序对索引进行排序,然后将其一一删除。如果这样做,删除将不会影响以后要删除的任何索引。 如何对它们进行排序将取决于您用来存储索引的集合。如果是列表,则可以执行以下操作: 编辑 @aioobe找到了我找不到的助手。除了上述内容,您还可以使用

  • 我是Node.js的新手,我在我的sql数据库2表中,一张叫做俱乐部的桌子和一张叫做球员的桌子,它们通过一对多的关系联系在一起,所以我在Flutter中创建了一个post查询,从我的查询中我想发送俱乐部的名字,俱乐部的价格将他们插入到第一个表中,并且在同一个查询中发送该队的选定球员列表,并做一个循环将他们插入到第二个表中,并为每个球员插入俱乐部的id,但是我发现我自己不知道我应该在Flutter或

  • 非常感谢任何帮助。

  • 问题内容: 我有一个家庭作业,需要在以下条件下插入或添加新元素: 元素必须 升序 。 中没有重复的 元素 insert方法运行 O(n) 次。 这是我在添加新元素之前检查重复元素的插入方法。 我该怎么做?谢谢。 加成 这是我的班级名称InSetExtra 我需要插入大尺寸的元素,例如: 我该怎么办? ps。我的教练只需要使用ArrayList 问题答案: 这是我的处理方式:(注释中的解释) 您发布

  • 问题内容: 是否可以使用一个insert语句在一个表中插入多行?我知道如果发生以下情况,将会发生这种情况: 但是,如果我想插入: 只需一个插入命令? 问题答案: 两种解决方案(来源:http : //appsfr.free.fr/spip.php?article21): 或者