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

为什么在另一个类中循环列表的大小会减小?

容飞掣
2023-03-14

我连接到一个数据库,在循环之后打印了一个查询结果列表。三条记录按预期返回并存储在一个变量中。

现在,我尝试使用另一个类中包含三条记录的变量,但是,循环列表中只有一条记录被打印在新类中。前两张唱片不见了。只剩下最后一个了。为什么在另一个类中调用时,循环列表的大小会减小?

 @Data
 public class ClassA{
 Crud crud = new Crud();
 static EntityManager entityManager;
 private String dbDemo;
    
    
 public void myMethodOne() {
 entityManager = crud.begin();
 Query query =
 entityManager.createQuery("select b from Table b order by b.createdDateTime desc").setMaxResults(3); // give me three records
    
      
  List<EntityClass> queryResultlist = query.getResultList();
  for (EntityClass resultRow : queryResultlist) {
  dbDemo = resultRow.getId();
  System.out.println(dbDemo);
  }
  }

输出:

测试1测试2测试3

public class ClassB{

ClassA ca = new ClassA();
 
 public void verifyMyMethodTwo() {
 ca.myMethodOne();
 System.out.println(ca.dbDemo());
    
  }

}

输出:

Test3

共有1个答案

纪秋月
2023-03-14

我的Java已经生锈,但@khan9797指出的算法是:

     dbDemo = ""
      List<EntityClass> queryResultlist = query.getResultList();
      for (EntityClass resultRow : queryResultlist) {
        dbDemo = dbDemo.concat(resultRow.getId());
      }
      System.out.println(dbDemo);

您遇到的问题是dbDemo值一次接受一个值,而不是将所有返回值收集到一个值中。您需要将它们全部转换为一个变量,然后输出该变量(因此在循环之外),并允许存储该变量以供调用者访问。

注意:您可能需要插入分隔符。我把它留给不那么生疏的人做练习。

 类似资料:
  • 问题内容: 有人可以向我解释此Python代码段的最后一行吗? 只是另一类。我不明白如何使用循环将对象存储到对象中。 问题答案: 您要询问的代码行是使用列表推导创建一个列表,并将在此列表中收集的数据分配给。相当于 说明 : 为了最好地解释它是 如何 工作的,可以使用一些简单的示例来帮助您 理解 所拥有的代码。如果您要继续使用Python代码,则将再次遇到列表理解,您可能想自己使用它。 注意,在下面

  • 问题内容: 给出两个列表: 语法是什么: 插入到这样现在看起来像? 插入的所有项目进入,使得现在的样子? 问题答案: 你的意思是? 还是合并?

  • 问题内容: 以下示例在Node.js书中给出: 解释了while循环为何阻止执行时,作者说: 节点将永远不会执行超时回调,因为事件循环卡在了循环中,而循环在第7行开始了,因此永远不会给它处理超时事件的机会! 但是,作者没有解释为什么这是在事件循环的背景下发生的,还是在幕后真正发生了什么。 有人可以详细说明吗?为什么节点卡住?以及如何在保留控制结构的同时更改上述代码,以使事件循环不会被阻塞,并且代码

  • 我有一个看起来很简单的问题,但由于某种原因我无法绕过它。基本上我的程序正在导致一个无限循环,我不知道为什么。 下面是我陷入的特定循环: 当我运行它时,它总是问我输入列#。我给它一个数字,它接受这个数字,$response变为True,但while循环继续运行,就好像<code>的$response</code>为false一样。我是Perl新手,所以可能我遗漏了一些东西,但是($response=

  • 问题内容: 我正在经历 递增/递减运算符 ,并且 遇到了这样的情况:如果在这种情况下以递减形式运行循环,则其运行速度将比相同的以递增形式运行的循环快。 我期望两者将花费相同的时间,因为将遵循相同数量的步骤。我在网上搜索,但找不到令人信服的答案。是因为与增量运算符相比,减数运算符花费的时间更少吗? 问题答案: 这是因为在字节码中,与0比较与与非零数字比较是不同的操作。实际需要先将数字加载到堆栈上,然

  • 问题内容: 我在编写Traveling Salesman程序时遇到了这个问题。对于内部循环,我尝试了 但是在该列表中添加另一个点时会导致被抛出。 但是,当我将循环更改为 循环运行良好,没有引发异常。 这两个都是for循环,那么为什么一个抛出异常却另一个没有抛出异常呢? 问题答案: 正如其他人解释的那样,迭代器检测到对基础集合的修改,这是一件好事,因为它可能会导致意外的行为。 想象一下下面的无迭代器