HashMap红黑树( 二 )

}

else {

K k = x.key;

int h = x.hash;

Class> kc = null;

for (TreeNode p = root;;) {

int dir, ph;

K pk = p.key;

if ((ph = p.hash) > h)

dir = -1;

else if (ph < h)

dir = 1;

else if ((kc == null &&

(kc = comparableClassFor(k)) == null) ||

(dir = compareComparables(kc, k, pk)) == 0)

dir = tieBreakOrder(k, pk);

TreeNode xp = p;

if ((p = (dir 红,明显不符合红黑树的特性,则意味着接下来要发生旋转来保证树的平衡。

推荐阅读