具有循环和读取列表的Java

具有循环和读取列表的Java,java,multithreading,loops,time,Java,Multithreading,Loops,Time,我不是专家,只是初学者。所以我恳请你为我写一些代码 我有四个数组列表->错误列表,列表,错误列表,列表。 有一个单独的程序独立运行,将对象添加到这些列表中 我需要编写一个单独的程序,读取它们1分钟或直到它们为空,然后转到下一个。该程序应始终处于运行模式,并侦听这些列表并进行处理 类似于 读取错误列表并处理其元素 如果没有元素,则转到列表A 如果元素随后被读取并移除,直到所有元素都被处理或达到1分钟的时间限制,然后转到列表A 读取列表并处理其元素 如果没有元素,则转到错误列表 如果元素随后读取并删

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

我有四个数组列表->错误列表,列表,错误列表,列表。 有一个单独的程序独立运行,将对象添加到这些列表中

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

类似于

读取错误列表并处理其元素

如果没有元素,则转到列表A

如果元素随后被读取并移除,直到所有元素都被处理或达到1分钟的时间限制,然后转到列表A

读取列表并处理其元素

如果没有元素,则转到错误列表

如果元素随后读取并删除元素,直到所有元素都被处理或达到1分钟的时间限制,则转到错误列表

读取错误列表并处理其元素

如果没有元素,则转到列表B

如果元素随后被读取并移除,直到所有元素都被处理或达到1分钟的时间限制,然后转到列表B

读取列表_B并处理其元素

如果没有元素,则转到错误列表A循环,查看错误列表A中是否有新元素

如果元素,则读取元素并删除它们,直到所有元素都被处理或达到1分钟的时间限制,然后转到错误列表A循环,查看错误列表A中是否有新元素

循环回到步骤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
    }

}
但似乎没有意义


谢谢。

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

因此,请对算法进行编码,如果您在这方面遇到一些错误或问题,请在这里发布

更新

 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创建精确的时间计数器,但这是一个很大的难题