java - 为什么使用 "s = --size"而不是 "s = size"?

标签 java data-structures

来自 PriorityQueue 的代码:

private E removeAt(int i) {
    assert i >= 0 && i < size;
    modCount++;
    int s = --size;        //    <- Why???
    if (s == i) // removed last element
        queue[i] = null;
    else {
        E moved = (E) queue[s];
        queue[s] = null;
        siftDown(i, moved);
        if (queue[i] == moved) {
            siftUp(i, moved);
            if (queue[i] != moved)
                return moved;
        }
    }
    return null;
}

s = --sizes = size 之间有什么区别?有人可以帮忙吗?提前致谢。

最佳答案

int s = --size;pre-decrement operator ,这不等于 int s = size; 。相当于

int s = (size = (size - 1));

size = size - 1;
int s = size;

但它比这两者都短

关于java - 为什么使用 "s = --size"而不是 "s = size"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35715545/

相关文章:

java - 从Java中获取存储过程代码

java - sql、jsp、java - 为什么此插入语法会执行错误条件?

java - 找到链表中的最小值

java - Java中是否有任何(无限制的)公平阻塞队列?

java - 树中的第一个元素变为空? Guava TreebasedTable

java - 尝试执行 httppost 时应用程序崩溃

java - android中的对象类

java - 如何配置单线程ForkJoinPool?

algorithm - Geometry:计算几何,计算所有的 friend 点对

c - 在链表中插入字符串时出现问题