import java.util.ArrayList;
public class Subset {
/**Séquence donnée*/
String[] list;
/**Nombre d'éléments dans un tableau donné*/
int count;
/**Liste pour stocker des sous-ensembles*/
ArrayList<String> arrayList = new ArrayList<>();
/**
*constructeur
* @param list
*/
public Subset(String[] list) {
this.list = list;
count = list.length;
arrayList = new ArrayList<>();
//Trouver un sous-ensemble
for(int i=0;i<count;i++) {
execute(i, "");
}
}
/**
*Rechercher un sous-ensemble à l'aide d'un appel de rappel basé sur un argument
* @param num
* @param str
*/
public void execute(int num, String str) {
if(num < count) {
if(str == "") {
str = list[num];
}
arrayList.add(str);
for(int i=num+1;i<count;i++) {
execute(i, str + ", " + list[i]);
}
}
}
}
public class Main {
public static void main(String args[]) {
String[] list = {"A", "B", "C", "D"};
Subset subset = new Subset(list);
for(String str:subset.arrayList) {
System.out.println(str);
}
}
}
A
A, B
A, B, C
A, B, C, D
A, B, D
A, C
A, C, D
A, D
B
B, C
B, C, D
B, D
C
C, D
D
Recommended Posts