当前位置: 首页 > 面试题库 >

在循环中创建对象的新实例以添加到列表中

皇甫通
2023-03-14
问题内容

我试图将对象(JavaBean)添加到列表中。

     MyWebServiceRequest mywebService = new MyWebServiceRequest();
     MyRequestType type= new MyRequestType ();

       for(int i=0; i< 9; i++){
           type.setA(someDynamicValue);
           type.setB(someDynamicValue);
           mywebService.add(type);
       }

这只会创建一个(类型)对象,因此它会向同一对象添加9次相同数据。

 MyWebServiceRequest mywebService = new MyWebServiceRequest();
   for(int i=0; i< 9; i++){
           MyRequestType type= new MyRequestType ();
           type.setA(someDynamicValue);
           type.setB(someDynamicValue);
           mywebService.add(type);
       }

这将创建多个对象,并使用diff值添加9个diff对象。

如果(for循环)每次创建一个请求时都创建数百个对象而不是9个,该怎么办?那么它在内存中的转储对吗?

如何避免这种情况?

提前致谢。


问题答案:

当你这样做

 MyWebServiceRequest mywebService = new MyWebServiceRequest();
   MyRequestType type= new MyRequestType ();

   for(int i=0; i< 9; i++){
       type.setA(1);
       type.setB(2);
       mywebService.add(type);
   }

该行将 mywebService.add(type);对象添加到列表中,无论其状态是否更改或它是同一对象。因为它是列表,而不是不允许重复的Map。

所以计数到10,现在

 MyWebServiceRequest mywebService = new MyWebServiceRequest();


   for(int i=0; i< 9; i++){
       MyRequestType type= new MyRequestType ();
       type.setA(1);
       type.setB(2);
       mywebService.add(type);
   }

现在,代码创建了一个新对象并添加到列表中,但是每个对象都不相同。两个片段中的唯一区别是,第二个片段中的Objects不相同,但第一个片段中的Objects相同,但相加了10次。



 类似资料:
  • 我试图将对象(JavaBean)添加到列表中。 这只会创建一个(类型)的对象,因此它会使用相同的数据将相同的对象添加9次。 这将创建多个对象,添加9个具有diff值的diff对象。 如果(对于循环)每次发出请求时都创建数百个对象而不是9个?所以它在内存中转储,对吗? 如何避免这种情况? 提前谢谢。

  • 问题内容: 我不确定这个问题是否与语言无关,因此我将以Java问题的身份提出。如果你有这样的循环 循环的每次迭代都在创建新的内存空间吗?如果是这样,是否要处理旧空间?如果没有,做这样的事情更有效吗 编辑:更新了代码以更好地说明问题 问题答案: 简短的答案:即使在Java中进行开发时,也不要理会这些事情,即使这些问题中的大多数都是由JVM自己处理的。 垃圾收集器将知道该怎么做,并将根据情况尝试做最好

  • 我对编程有点陌生,我被卡住了。假设我在一个项目中有五个不同的类:foo1、foo2、foo3、foo4和foo5,它们都做不同但相似的事情。现在假设我需要为每个对象创建一个新对象,比如:foo1 bar1=new foo1();foo2 bar2=新的foo2();foo3 bar3=新的foo3();等等当然这是可行的,但如果我能在一个for循环中实例化我需要的所有对象,或者至少把我想要创建的所

  • 我想创建一个对象动态,例如在JavaFX中的一个圆。我的代码会像这样。 我现在的问题是如何增加每个圆的独特性。例如,如果我要添加每个圆的不同颜色和大小。我该如何实现呢?请帮忙。

  • 我有一个类来代表一个玩家的手牌。但是,我(在另一个类中)有一个数组列表,我想在其中表示一堆玩家手。问题是我不知道如何在多手牌的数组列表中将一张牌添加到手牌中。我有一个代表卡牌和一副牌的类,效果很好。我只是试图了解如何将对象添加到数组列表中的对象。谢谢!

  • 问题内容: 综观matplotlib文档,似乎标准的方式来添加一个是使用: 我希望能够独立于图形创建类似对象,因此可以在不同图形中使用它们。就像是 这有可能吗?如果可以,我该怎么做? 更新:我没有设法使轴和图形的创建脱钩,但是以下答案中的示例可以轻松地在新实例或实例中重用先前创建的轴。这可以用一个简单的函数说明: 问题答案: 通常,你只需将轴实例传递给函数。 例如: 要回答你的问题,你始终可以执行