Bonjour,

J'ai créé une fonction concatStrings pour concaténer tous les éléments de la liste listItem , puis j'ai créé une fonction nbrDuplicate pour retourner une map qui contient tous les caractère qui existent dans la liste et le nombre de répétitions de chaque caractère. Dans ce cas le résultat est :
A 4
C 6
D 4
T 4
W 5

Je veux à partir ce résultat trouver toutes les combinaisons possibles de ces caractères et leur nombre de répétitions dans chaque combinaison, c'est-à-dire :
AC 4 (AC existe dans l'element 1,3,4,5 de la liste)
AD 2 (AD existe dans l'element 4,5 de la liste)
AT 3
AW 4
CD 4
CT 3
CW 5
DT 2
DW 3
TW 3

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
List<String> listItem = new ArrayList<String>();
listItem.add("ACTW");
listItem.add("CDW");
listItem.add("ACTW");
listItem.add("ACDWT");
listItem.add("ACDW");
listItem.add("CDT");
 
static String concatStrings(List<String> strings) {
		StringBuilder sb = new StringBuilder();
		for (String s : strings) {
			sb.append(s);
		}
		return sb.toString();
	}
 
static Map<Character, Integer> nbrDuplicate(List<String> list) {
		String str = concatStrings(list);
		char[] chars = str.toCharArray();
		Map<Character, Integer> map = new HashMap<Character, Integer>();
		for (Character ch : chars) {
			if (map.containsKey(ch)) {
				map.put(ch, map.get(ch) + 1);
			} else {
				map.put(ch, 1);
			}
		}
		return map;
	}