【问题标题】:Java with looping and reading lists [closed]带有循环和阅读列表的 Java [关闭]
【发布时间】:2012-12-05 23:24:25
【问题描述】:

我不是专家,只是初学者。所以我请你为我写一些代码。

我在 java 中有四个 ArrayLists -> error_list_A, list_A, error_list_B, list_B。 有一个独立运行的程序将对象添加到这些列表中。

我需要编写一个单独的程序来读取它们 1 分钟或直到它们为空,然后转到下一个。该程序应始终处于运行模式并侦听这些列表并进行处理。

有点像..

  1. 读取error_list_A 并处理其元素。

    如果没有元素则转到list_A

    如果元素然后读取元素并删除它们,直到所有元素都被处理或达到 1 分钟的时间限制,然后转到 list_A

  2. 读取list_A 并处理其元素。

    如果没有元素则转到error_list_B

    如果元素然后读取元素并删除它们,直到所有元素都被处理或达到 1 分钟的时间限制,然后转到 error_list_B

  3. 读取error_list_B 并处理其元素。

    如果没有元素则转到list_B

    如果元素然后读取元素并删除它们,直到所有元素都被处理或达到 1 分钟的时间限制,然后转到 list_B

  4. 读取list_B 并处理其元素。

    如果没有元素则转到error_list_A(循环返回查看error_list_A中是否有新元素)

    如果元素随后读取元素并删除它们,直到所有元素都被处理或达到 1 分钟的时间限制,则转到 error_list_A(循环返回以查看 error_list_A 中是否有新元素)

  5. 循环回到步骤 1。

你能发布一些示例代码吗?

我知道如何阅读和处理它们,因此您可以忽略那部分。只需要在列表之间切换并保持它们在循环中读取的代码。

这不是家庭作业。在实际程序中,我必须通过读取存储来自 Web 应用程序的错误的目录来实现这一点。所以请不要说你在做作业而忽略它。

我试过这样的东西..

public class ListReader {

    private static List<Object> list_A, error_list_A, list_B, error_list_B; // Initialize list by reading them.

    public static void main(String[] args) {
        while (true) {
            if (error_list_A != null && error_list_A.size() > 0) {
                processList(error_list_A);
            } else if (list_A != null && list_A.size() > 0) {
                processList(list_A);
            } else if (list_B != null && list_B.size() > 0) {
                processList(list_B);
            } else if (error_list_B != null && error_list_B.size() > 0) {
                processList(error_list_B);
            }
        }
    }

    private static void processList(List<Object> list){
        // Code for when empty or time limit reached then return
    }

}

但似乎没有意义。

谢谢。

【问题讨论】:

  • 恐怕纯代码编写请求在 Stack Overflow 上是题外话。
  • 首先您尝试一些东西,然后向我们展示您面临的一些实际问题。如果你表现出你的努力,我相信 SO 不会让你失望的。
  • 我不需要纯代码。只是一些代码在列表之间切换并保持它们在循环中读取。
  • 尝试一下,写一个main,一个简单的Thread。得到一个错误。那么我们可以提供帮助。
  • 另外你能发布一些示例代码吗?

标签: java multithreading loops time


【解决方案1】:

我建议您自己编写代码。只有这样,您才能学习该语言。 计算机科学中最困难的问题是为某个问题找到最佳算法。如果您手头有算法,实现起来很容易。

所以请对算法进行编码,如果您在其中遇到一些错误或问题,请在此处发布。

更新

 if (error_list_A != null && error_list_A.size() > 0) {
                processList(error_list_A);
            }
if (list_A != null && list_A.size() > 0) {
                processList(list_A);
            }
if (list_B != null && list_B.size() > 0) {
                processList(list_B);
            }
if (error_list_B != null && error_list_B.size() > 0) {
                processList(error_list_B);
            }

在 processList 函数中,你启动你的计时器,然后开始处理列表中的每个元素。在处理每个元素之前,检查计时器。如果超过 1 分钟,你可以从函数返回,否则继续。继续这个直到你到达列表结束。如果时间还没有超过 1 分钟,则返回。

【讨论】:

  • 你能否为这个问题推荐一些示例代码?我不需要确切的代码,只需要一些提示..
  • 使用计时器等待 1 分钟似乎比连续的 while 循环非常可行。但是您也可以使用System.currentTimeMillis() 并创建精确的时间计数器,但它是一个很大的头疼
猜你喜欢
  • 2014-06-12
  • 2021-12-20
  • 2017-02-18
  • 2021-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 2019-02-26
相关资源
最近更新 更多