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

为什么我在java中的arraylist自己变成空的

姚星宇
2023-03-14

我有一个简单的代码。我把一个数除以它的最小因子,直到得到1。但是由于某些原因,存储因子的arraylist变空了。

long total = 0;
long current = 6;
total += current;
while(current > 1){
     ArrayList<Long> numbers = new ArrayList<>();
     for(long j = 2; j<= Math.ceil(Math.sqrt(current)); j++){                
         if(current % j == 0){
           numbers.add(j);
         }
     }
     System.out.println(numbers);
     total += current / numbers.get(0);
     current = current / numbers.get(0);
 }

我的答案应该是6+3,因为6/2(最小因子)+1因为3/3(最小因子)。

我的错误是总数+=current/numbers.get(0);

当我打印arraylist时,它显示[2,3],但随后变为空。这是编译器。

共有1个答案

赏星河
2023-03-14

因为您在while中初始化数组,如果有if或for条件不匹配,则它将始终为空

您可以在while条件之前启动数组列表,如下所示:

ArrayList<Long> numbers = new ArrayList<>(); 
while(current > 1)
 类似资料:
  • 我试图从我的Java程序中读取一个充当数据库的. txt文件。在通过TextEdit和使用FileWriter类运行程序之前,我已经写入了该文件Java但是在运行这些代码行后,程序仍然显示一个空数组。这是唯一造成问题的地方,当我使用ArrayList作为临时数据库时,我代码的其余部分(此处未显示)运行良好。有人能帮我找出为什么. txt文件总是空的吗?

  • 问题内容: 我正在运行,并且在.htaccess文件中执行了以下操作: 如果我在PHP文件中打印出变量,则会得到一个空数组。为什么我的环境变量没有出现在这里?为什么首先是空的? 我确实找到了变量,但是它出现在变量中。由于某种原因,它出现了两次。为什么是这样? 看来我可以使用来获得它,所以也许我应该只使用它。但是我仍然对造成这种情况的原因有些好奇。这是Windows问题吗?还是发生了什么事? 问题答

  • 不幸的是,这段代码运行速度比“os.walk”慢,但为什么呢? 会不会是“为”循环导致它运行缓慢? 类似于“os.walk”的代码:(“os.walk”函数完成它的功能) 注意:我写信是为了提高自己!: 例如: 2秒内结束: 在0.5秒内:

  • 我已经为我的自定义日志拦截器执行了以下操作 我正在将拦截器设置为restTemboard 记录器正在将响应正确地打印到控制台,但最后响应会以空的形式返回给调用者。我无法调试和解决它。 我已经弄明白了StreamUtils。copyToString(response.getBody(),字符集。defaultCharset())正在读取一次输入流,并且不再在其中保存响应正文(现在为空) 还有谁也面临

  • 本文向大家介绍你认为自己在团队中的角色是什么,你希望自己在团队中的角色是什么?相关面试题,主要包含被问及你认为自己在团队中的角色是什么,你希望自己在团队中的角色是什么?时的应答技巧和注意事项,需要的朋友参考一下

  • 问题内容: 我在TableView中添加了默认的TEST1和TEST2作为Name Col,但是在运行它时却没有显示。这是我使用过的两个类和一个fxml,有人可以给我一些有关此问题的建议吗? 仅一个包调用:controllerJBoxFXTest 第一类MainView.class包controllerJBoxFXTest; 在第二个MainController.java中,可以看到我添加了TES