CustomSortedList.java 文件源码

java
阅读 19 收藏 0 点赞 0 评论 0

项目:SimpleTaskList 作者:
private void updateUnsorted(Change<? extends E> c) {
    while (c.next()) {
        if (c.wasPermutated()) {
            Element[] sortedTmp = new Element[sorted.length];
            for (int i = 0; i < size; ++i) {
                if (i >= c.getFrom() && i < c.getTo()) {
                    sortedTmp[c.getPermutation(i)] = sorted[i];
                } else {
                    sortedTmp[i] = sorted[i];
                }
            }
            sorted = sortedTmp;
        }
        if (c.wasRemoved()) {
            final int removedTo = c.getFrom() + c.getRemovedSize();
            System.arraycopy(sorted, removedTo, sorted, c.getFrom(), size - removedTo);
            size -= c.getRemovedSize();
            updateIndices(removedTo, -c.getRemovedSize());
        }
        if (c.wasAdded()) {
            ensureSize(size + c.getAddedSize());
            updateIndices(c.getFrom(), c.getAddedSize());
            System.arraycopy(sorted, c.getFrom(), sorted, c.getTo(), size - c.getFrom());
            size += c.getAddedSize();
            for (int i = c.getFrom(); i < c.getTo(); ++i) {
                sorted[i] = new Element<E>(c.getList().get(i), i);
            }
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号