Просто используйте массив, чтобы сохранить частоту повторения каждого символа:
int[] charCount={5,10,20,10};
for(char chr = 'a',int i=0; chr <= 'd'&&i<charCount.length; chr++,i++){
alphabetList.addAll(Collections.nCopies(charCount[i], chr));
}
Я также добавил переменную-счетчик i
, которая указывает позицию в массиве.
Затем вы можете просто использовать массив по этому индексу, чтобы узнать, как часто вы хотите повторить символ.
Чтобы предотвратить ArrayIndexOutOfNoundsExceptions
(если массив слишком мал), я добавил проверку, что в этом случае l oop прерывается.