【问题标题】:How to find out if any of the remaining numbers in a list are greater than another如何找出列表中的任何剩余数字是否大于另一个
【发布时间】:2020-08-31 07:03:18
【问题描述】:

如果有人可以帮助我,请在某事上寻求一点帮助,而不是为了给我指明正确的方向而为我做这件事。 基本上我已经创建了一个数字列表,上个月每天的高价。从第一天开始,我想知道这一天的高点是否已经突破了本月的任何其他日子。如果它有我没有用这个号码但是如果它没有我需要保存它以供以后使用然后在第二天做同样的事情等等。

到目前为止,我正在使用一个 for 循环,如您所见,它还没有完成,但我可以稍后向它添加一个 Map,现在我只是在寻找我必须用什么来替换粗体部分,以便它看起来在所有剩余的日子里,而不仅仅是接下来的日子。

      for( i = 0; i < highs.size(); i++){
      if(highs(i) > **highs(i+1**)) {
      console.getOut().println(highs[i]);

      }

感谢您的宝贵时间

【问题讨论】:

  • 考虑在变量 ji+1highs.size() 添加第二个内部循环。您还希望将i 限制为highs.size() - 1(否则highs.get(i+1) 是非法的)。然后您可以使用索引ij
  • 非常感谢您帮助 Elliot,添加第二个循环非常适合我想要实现的目标。

标签: java for-loop arraylist numbers


【解决方案1】:

据我了解,您希望将最大的数字保留在高列表中。 遍历列表,将当前数字 (A) 与下一个数字 (B) 进行比较,并在 A>B 的情况下交换。通过迭代大小为“n”的列表,n-1 次,因为我们只需要进行 n-1 次比较,您将在最后一个索引处获得最大的数字。

for(i=0; i < arr.length -1; i++) {
        //swapping if num is greater than the next number.
        if(arr[i] > arr[i+1]) {
            tmp = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = tmp;
        }

    }

【讨论】:

  • 嗨 Vartika 感谢您的输入,我对 Java 很陌生,之前没有遇到过 Iterator 函数,但我设法通过添加第二个循环使其工作。我可能没有完全理解你的建议,但乍一看,这种技术会给出整个列表中最高的数字吗?实际上,我只想返回一个特定的数字,如果从它的相应日期到列表末尾没有超过它,每天之前发生的事情将是无关紧要的。这是itertor函数可以做到的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
相关资源
最近更新 更多