скажем, у меня есть массив
[bob, alice, jeff, bob, bob]
Я хотел бы преобразовать этот массив в
[bob, alice, jeff, bob1, bob2]
То есть, определение вхождений.
// iterate through array
// check if element is in finalArray
// if not add to finalArray
// if found in final array
// add in duplicateArray
// check instances of element in duplicateArray and add that number to element
// insert element+updated number to finalArray
Это моя реализация вышеуказанного алгоритма
ArrayList<String> list = new ArrayList<>();
list.add("Bob");
list.add("Jane");
list.add("Smith");
list.add("Bob");
list.add("Bob");
list.add("Jane");
list.add("Smithery");
ArrayList<String> finalList = new ArrayList<>();
ArrayList<String> tempList = new ArrayList<>();
for(String name : list) {
if(finalList.contains(name)) {
int count = 0;
tempList.add(name);
for(int i=0; i < tempList.size(); i++) {
if(tempList.get(i) == name) {
count++;
}
}
String tempName = name + count;
finalList.add(tempName);
} else {
finalList.add(name);
}
}
for(String name: finalList) {
System.out.println(name);
}
У меня вопрос, хотя ArrayList
, а в других структурах данных есть метод .contains
, есть ли в каких-либо структурах данных методы, которые возвращают количество экземпляров элемента в структуре данных?