private static boolean equivalent(char[] a, char[] b) {
        checkArgNotNull(a, "a");
        checkArgNotNull(b, "b");
        if (a == b) return true;
        int length = a.length;
        if (b.length != length) return false;

        outer:
        for (int i = 0; i < length; i++) {
            char ac = a[i];
            for (int j = 0; j < length; j++) {
                if (ac == b[j]) continue outer;
            }
            return false;
        }
        return true;
    }
private static boolean equivalent ( char [ ] a , char [ ] b ) { checkArgNotNull ( a , "a" ) ; checkArgNotNull ( b , "b" ) ; if ( a == b ) return true ; int length = a . length ; if ( b . length != length ) return false ; outer : for ( int i = 0 ; i < length ; i ++ ) { char ac = a [ i ] ; for ( int j = 0 ; j < length ; j ++ ) { if ( ac == b [ j ] ) continue outer ; } return false ; } return true ; }
order independent Array.equals()