Javaは2のセットかどうかを判断し、同じ交差点、労働組合、差分を求めています

あなたはそれを用いた二つの動作のセットは、すべてのツールがセットコレクションを特性(固有の要素)を用いる方法を提供するかどうかを決定する必要があります。

プライベート地図<文字列、セット<整数>> getCategoryApiId(セット<整数> oldAuthSet、セット<整数> newAuthSet){ 
        地図 <文字列、セット<整数>> categoryApiId = 新しいHashMapの();
        もし(oldAuthSet!= nullの && newAuthSet!= nullの){
             // 首先判断两个集合是否一致
            であれば(oldAuthSet.size()== newAuthSet.size()){ 
                セット <整数> TEMPSET = 新しい HashSetの<整数> () ; 
                tempSet.addAll(oldAuthSet)。
                tempSet.addAll(newAuthSet)。
                もし(tempSet.size()== oldAuthSet.size()){= ヌル ; // APIの数増加しない 
                    logger.infoを( "追加APIを削除しない" ); 
                } そうでなければ{
                     // 1:交差点; 2:ABは差を設定する; 3:セットと 
                    セット<整数> apiSet1 = getApiSet(oldAuthSet、newAuthSet ,. 1 ); 
                    を設定し、<整数> = deleteAuthSet getApiSet(oldAuthSet、apiSet1、2 ); 
                    セット <整数> = insertAuthSet getApiSet(newAuthSet、oldAuthSet、2); // 取得し、新たなapiIdの 
                    logger.info( +: "APIを削除" deleteAuthSet); 
                    logger.info("新しいAPI:" + insertAuthSet); 
                    categoryApiId.put( "insertApi" 
                logger.infoを( "削除されたAPI:「+、insertAuthSet); 
                    categoryApiId.put( "datele" 、deleteAuthSet); 
                } 
            } そうでなければ{
                 // 1:交差点; 2:ABセット差; 3:BA設定差; 4:セットと 
                セット<整数> apiSet1 = getApiSet (oldAuthSet、newAuthSet、1 ); 
                を設定し、<整数> deleteAuthSet = getApiSet(oldAuthSet、apiSet1、2); // apiIdが削除取得 
                設定<整数> insertAuthSet = getApiSet(newAuthSet、oldAuthSetを、2); // 新しいを取得apiId 
                categoryApiId.put(deleteAuthSet); 
                logger.info( "新しいAPI:" + insertAuthSet); "insertApi" 、insertAuthSet); 
                categoryApiId.put( "datele" 、deleteAuthSet); 
            } 
        } {
             IF(oldAuthSet == nullの && newAuthSet =!ヌル){     // すべての新しいAPIの 
                logger.info( "初めて新しい認証API" ); 
                categoryApiId.put( "insertApi" 、newAuthSet); 
            } 他の IF!(oldAuthSet = nullを &&newAuthSet == NULL){   // 変更されていないAPIユーザ認証データの 
                logger.info("なし新しい認証API」);
                categoryApiId.put( "datele" 、oldAuthSet)。
            } そう であれば(oldAuthSet == NULL && newAuthSet == NULL ){ 
                logger.info( "已授权API和新增授权API都为空" )。
                categoryApiId = nullを
            } 
        } 
        戻りcategoryApiId。
    } 

プライベート設定<整数> getApiSet(セット<整数> oldAuthSet、セット<整数> newAuthSet、INT フラグ){ 
        セット <整数>結果= 新しい HashSetの<整数> ();
        もし(フラグ== 1){ // 求交集
            result.clear()。
            result.addAll(oldAuthSet)。
            result.retainAll(newAuthSet)。
        } そう であれば(フラグ== 2){ // 求差集
            result.clear()。
            result.addAll(oldAuthSet)。
            result.removeAll(newAuthSet)。
        } そう であれば(フラグ== 3){ // 求并集の
            result.clear()。
            result.addAll(oldAuthSet)。
            result.addAll(newAuthSet)。
        } 
        戻り値の結果; 
    }

 

おすすめ

転載: www.cnblogs.com/zyanrong/p/11791508.html