Чтобы рекурсивно подсчитать количество вхождений символа в ArrayList, вы можете использовать следующий метод:
Метод 1: использование рекурсивной функции
import java.util.ArrayList;
public class CharacterCounter {
public static int countOccurrences(ArrayList<Character> arrayList, char target) {
if (arrayList.isEmpty()) {
return 0;
} else {
char first = arrayList.get(0);
arrayList.remove(0);
int count = countOccurrences(arrayList, target);
if (first == target) {
count++;
}
return count;
}
}
public static void main(String[] args) {
ArrayList<Character> arrayList = new ArrayList<>();
arrayList.add('a');
arrayList.add('b');
arrayList.add('a');
arrayList.add('c');
arrayList.add('a');
char target = 'a';
int occurrences = countOccurrences(arrayList, target);
System.out.println("Number of occurrences of '" + target + "': " + occurrences);
}
}
Объяснение:
Метод countOccurrencesпринимает массив символов ArrayList (arrayList) и целевой символ (target). Он рекурсивно подсчитывает количество вхождений целевого символа в ArrayList.
Метод сначала проверяет, пуст ли ArrayList. Если это так, это означает, что элементов для проверки больше нет, поэтому возвращается 0.
Если ArrayList не пуст, он извлекает первый символ из ArrayList и удаляет его. Затем он рекурсивно вызывает метод countOccurrencesс обновленным ArrayList.
Рекурсивный вызов возвращает количество вхождений целевого символа в остальные элементы ArrayList. Если первый символ равен целевому символу, счетчик увеличивается на 1.
Наконец, метод возвращает общее количество вхождений.
В методе mainсоздается пример ArrayList с некоторыми символами, а целевым символом устанавливается значение «a». Вызывается метод countOccurrencesи выводится результат.