首页 > 解决方案 > 关于 if(m==c)m=c 的 JRE 规范;及其意义

问题描述

我最近看到了一些奇怪的代码。我无法理解它们的使用意义。
a在诸如fastutil 和 jhighlight 之if(m==c)m=c;类的库中出现之前没有任何意义。我已经在这个主题上搜索了很多,但令我惊讶的是,它似乎是 Java 规范,没有如此记录 - 可能是由于弃用等。如果有人能详细说明,我将不胜感激。

            int comparison;
            while ( b <= c && ( ( comparison = comp.compare( b, m ) ) <= 0 ) ) {
                if ( comparison == 0 ) {
                    if ( a == m ) m = b; // moving target; DELTA to JDK !!!
                    else if ( b == m ) m = a; // moving target; DELTA to JDK !!!
                    swapper.swap( a++, b );
                }
                b++;
            }
            while ( c >= b && ( ( comparison = comp.compare( c, m ) ) >= 0 ) ) {
                if ( comparison == 0 ) {
                    if ( c == m ) m = d; // moving target; DELTA to JDK !!!
                    else if ( d == m ) m = c; // moving target; DELTA to JDK !!!
                    swapper.swap( c, d-- );
                }
                c--;
            }
            if ( b > c ) break;
            if ( b == m ) m = d; // moving target; DELTA to JDK !!!
            else if ( c == m ) m = c; // moving target; DELTA to JDK !!!
            swapper.swap( b++, c-- );
        }

标签: javaarraystypesspecificationsfastutil

解决方案


推荐阅读