public T max() {
            if (!A_.isEmpty()) {
                return B_.isEmpty() ? Collections.max(A_) :
                        Collections.max(Arrays.asList(Collections.max(A_), Collections.max(B_)));
            } else { // A_.empty() == true.
                if(!B_.isEmpty()) {
                    return Collections.max(B_);
                }
                throw new RuntimeException("empty queue");
            }
        }