Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java从队列中检索所有元素,直到队列为空_Java_Android_Queue - Fatal编程技术网

Java从队列中检索所有元素,直到队列为空

Java从队列中检索所有元素,直到队列为空,java,android,queue,Java,Android,Queue,我想在android/java中实现元素的队列,这样 当我在队列中插入一个元素时,如果该元素是队列中唯一的元素,那么该元素将立即开始执行 如果队列中有其他元素,它们将依次执行 一旦执行了所有元素,队列将等待插入新元素。插入元素后,它将再次开始执行 此场景中使用的最佳集合是什么?是否有任何集合提供的满足条件3的默认回调 我能想到的一个实现是在我的队列推进中编写一个方法,类似于 public static void executeNext() { Executor element = get

我想在android/java中实现元素的队列,这样

  • 当我在队列中插入一个元素时,如果该元素是队列中唯一的元素,那么该元素将立即开始执行
  • 如果队列中有其他元素,它们将依次执行
  • 一旦执行了所有元素,队列将等待插入新元素。插入元素后,它将再次开始执行
  • 此场景中使用的最佳集合是什么?是否有任何集合提供的满足条件3的默认回调

    我能想到的一个实现是在我的队列推进中编写一个方法,类似于

    public static void executeNext() {
        Executor element = getFirst();
        if (element != null && element.doneExecuting()) {
            pop();
        }
    
        Executor next = getFirst();
        next.execute();
    }
    
    一旦执行完成,将从我的
    Executor
    类对象(它是我队列的一个元素)调用它

    public void onExceutionComplete(){
        ExecutionQueue.getInstance().executeNext();
    }
    

    为什么不尝试实现一个侦听器,它将继续侦听队列


    这将确保新条目一出现,就开始执行。

    中描述了您需要的内容。有一个名为SerialExecutor的实现可能适合您的问题。

    这意味着一个线程持续运行,检查队列是否为空。这不是效率低下吗?当队列为空或添加了元素时,我需要一些回调。编写自定义侦听器类。您可以在其中编写自己的方法(回调),并在处理每个条目的大小检查后,如果大小等于0,则调用回调。@Rajkiran否。线程处于等待状态,直到队列中有可用的内容为止。瞧,这正是我要找的东西。谢谢