あなたはそれを用いた二つの動作のセットは、すべてのツールがセットコレクションを特性(固有の要素)を用いる方法を提供するかどうかを決定する必要があります。
プライベート地図<文字列、セット<整数>> 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)。 } 戻り値の結果; }