Почему мой метод CountRecur не работает? Я попытался расчесать его, но не кубик. Я знаю, что это не все так хорошо оптимизировано, но я все пробовал, и я думал, что смогу сделать это.Почему мой метод CountRecur не работает, я попытался прочесать его, но не купил
Предположим, что StrArr1 уже в алфавитном порядке и что все строки в нем - это слова, которые могут встречаться более одного раза, они также все в низких шапках. Убрать recur отлично работает, я тестировал его.
public void CountRecur() {
ArrayList <String> StrArr2 = new ArrayList <String>();
StrArr2 = StrArr1;
this.RemoveRecur(StrArr2);
int count = 0;
int j = 0;
for (int i = 0; i <= StrArr2.size(); i++) {
if (count != 0) {
IntArr.add(count);
}
count = 0;
if (i < StrArr2.size()) {
while (j < StrArr1.size() && StrArr2.get(i).equals(StrArr1.get(j))) {
count++;
j++;
}
}
}
}
public void RemoveRecur(ArrayList <String> StrArr3) {
int i = 1;
while (i < StrArr3.size()) {
if (StrArr3.get(i).equals(StrArr3.get(i - 1))) {
StrArr3.remove(i - 1);
i = 0;
}
i++;
}
}
1) Назначение StrArr2 = новый ArrayList расточительно и бессмысленно, так как на следующей строке вы назначаете его StrArr1. Просто объявите это так: ArrayList StrArr2 = StrArr1; и пропустите новую часть ArrayList. 2) Трудно следовать методу CountRecur, код довольно плохо написан и нелегко следовать. Какова цель метода и каков ваш точный вопрос, включая результаты, которые вы получаете и ожидаете получить? –
pczeus
Из чего я могу видеть ваш код, вы пытаетесь устранить повторяющиеся строки из списка String, а затем зафиксировать количество копий, которые были найдены и удалены, верно? А где «повторяющаяся часть вашего кода»? – pczeus
Чтобы подсчитать количество повторений строк в StrArr1. Я знаю, что мне даже не нужно strarr2 в теории, но я все испробовал, и это приблизило меня к решению. – Harsh