diff options
Diffstat (limited to 'src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java')
-rw-r--r-- | src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java | 126 |
1 files changed, 63 insertions, 63 deletions
diff --git a/src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java b/src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java index fbf7c5b..0a72ce5 100644 --- a/src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java +++ b/src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java @@ -8,16 +8,16 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * + * <p> * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.openecomp.datarouter.util; @@ -26,73 +26,73 @@ import java.util.ArrayList; import java.util.List; public class SearchSuggestionPermutation { - /* - * Will return all the unique combinations of the suggestions provided. - * The order of the permutation is not taken into account when computing - * the uniqueness. - * e.g.: A list of A,B,C,D will return - * [[A], [A, B, C, D], [A, C, D], [A, D], [B], [B, C, D], [B, D], [C], [C, D], [D]] - * - * @param list The list of statuses to create permutations of - * @return A list which contains a array list of all possible combinations - */ - public static ArrayList<ArrayList<String>> getUniqueListForSuggestions( - List<String> originalList) { - ArrayList<ArrayList<String>> lists = new ArrayList<ArrayList<String>>(); - if (originalList.isEmpty()) { - lists.add(new ArrayList<String>()); - return lists; - } - List<String> list = new ArrayList<String>(originalList); - String head = list.get(0); - ArrayList<String> rest = new ArrayList<String>(list.subList(1, list.size())); - - for (ArrayList<String> activeList : getUniqueListForSuggestions(rest)) { - ArrayList<String> newList = new ArrayList<String>(); - newList.add(head); - newList.addAll(activeList); - lists.add(newList); - lists.add(activeList); - } - return lists; - } - - public static ArrayList<ArrayList<String>> getNonEmptyUniqueLists(List<String> list){ - ArrayList<ArrayList<String>> lists = getUniqueListForSuggestions(list); - // remove empty list from the power set - for (ArrayList<String> emptyList : lists ){ - if ( emptyList.isEmpty() ) { - lists.remove(emptyList); - break; - } + /* + * Will return all the unique combinations of the suggestions provided. + * The order of the permutation is not taken into account when computing + * the uniqueness. + * e.g.: A list of A,B,C,D will return + * [[A], [A, B, C, D], [A, C, D], [A, D], [B], [B, C, D], [B, D], [C], [C, D], [D]] + * + * @param list The list of statuses to create permutations of + * @return A list which contains a array list of all possible combinations + */ + public static ArrayList<ArrayList<String>> getUniqueListForSuggestions( + List<String> originalList) { + ArrayList<ArrayList<String>> lists = new ArrayList<>(); + if (originalList.isEmpty()) { + lists.add(new ArrayList<String>()); + return lists; + } + List<String> list = new ArrayList<>(originalList); + String head = list.get(0); + ArrayList<String> rest = new ArrayList<>(list.subList(1, list.size())); + + for (ArrayList<String> activeList : getUniqueListForSuggestions(rest)) { + ArrayList<String> newList = new ArrayList<>(); + newList.add(head); + newList.addAll(activeList); + lists.add(newList); + lists.add(activeList); + } + return lists; } - return lists; - } - public static List<List<String>> getListPermutations(List<String> list) { - List<String> inputList = new ArrayList<String>(); - inputList.addAll(list); - if (inputList.size() == 0) { - List<List<String>> result = new ArrayList<List<String>>(); - result.add(new ArrayList<String>()); - return result; + public static ArrayList<ArrayList<String>> getNonEmptyUniqueLists(List<String> list) { + ArrayList<ArrayList<String>> lists = getUniqueListForSuggestions(list); + // remove empty list from the power set + for (ArrayList<String> emptyList : lists) { + if (emptyList.isEmpty()) { + lists.remove(emptyList); + break; + } + } + return lists; } - List<List<String>> listOfLists = new ArrayList<List<String>>(); + public static List<List<String>> getListPermutations(List<String> list) { + List<String> inputList = new ArrayList<>(); + inputList.addAll(list); + if (inputList.isEmpty()) { + List<List<String>> result = new ArrayList<>(); + result.add(new ArrayList<String>()); + return result; + } + + List<List<String>> listOfLists = new ArrayList<>(); - String firstElement = inputList.remove(0); + String firstElement = inputList.remove(0); - List<List<String>> recursiveReturn = getListPermutations(inputList); - for (List<String> li : recursiveReturn) { + List<List<String>> recursiveReturn = getListPermutations(inputList); + for (List<String> li : recursiveReturn) { - for (int index = 0; index <= li.size(); index++) { - List<String> temp = new ArrayList<String>(li); - temp.add(index, firstElement); - listOfLists.add(temp); - } + for (int index = 0; index <= li.size(); index++) { + List<String> temp = new ArrayList<>(li); + temp.add(index, firstElement); + listOfLists.add(temp); + } + } + return listOfLists; } - return listOfLists; - } } |