хорошо, у меня есть ArrayList с этими значениями
ACU
ACU
ACU
ACU
ACY
ACY
AER
AER
AER
AGC
Мне нужно получить количество элементов каждого Слова, поэтому для
- АКС получим 4,
- ACY мы получим 2,
- AER мы получим 3,
- AGC получим 1.
Обычно число, которое повторяется в слове, является переменной
поэтому в другой раз ACU может быть 1, а ACY может быть 100 ..
Итак, у меня есть класс для хранения значений "whatWord" и "howMany"
public class Word {
private String whatWord;
private int howMany;
public cVOPlaza(String whatWord, int howMany){
this.whatWord = whatWord;
this.howMany= howMany;
}
public String getwhatWord() {
return whatWord;
}
public void setwhatWord(String whatWord) {
this.whatWord = whatWord;
}
public int gethowMany() {
return howMany;
}
public void sethowMany(int howMany) {
this.howMany = howMany;
}
}
Я застрял здесь, потому что я знаю, что часть get (i + 1) в следующем коде вызовет ошибку, вы знаете, значение не существует, но тогда я не знаю, что делать ...
ArrayList<Word> arrayWords = new ArrayList<Word>();
int cuantos = 0;
for (int i=0;i<OriginalList.size();i++) {
String word1 = OriginalList.get(i).getWord();
String word2 = OriginalList.get(i+1).getWord();
if (word1.equals(word2)){
//this counter is bad here...
//where do i increment it??
howMany++;
Word a = new Word(word1,howMany);
///....DONT KNOW WHERE TO ADD THE OBJECT
//to the list
//arrayWords.add(a)
}
}
Предполагается, что после кода я получу
ACU 4,
ACY 2,
AER 3,
AGC 1.
Сначала я попытался сделать попытку HashMap, пожалуйста, помогите мне с этим кодом:
HashMap table = new HashMap();
int value=0;
String key=null;
//INITIALIZE HASH??? LIKE THIS
for (int i = 0; i < OriginalList.size; i++) {
table.put(0,OriginalList.get(i).getWord());
}
String word1=null;
ArrayList<Word> arrayWords = new ArrayList<Word>();
//LOOP FOR SEARCHING
for (int i = 0; i < OriginalList.size(); i++) {
key = OriginalList.get(i).getWord();
if (table.containsKey(key)) {
word1 = (String) table.get(key);
value++;
}else {
word1 = (String) table.get(key);
value=1
}
//Add result??
Word a = new Word(word1,value);
}
Заранее спасибо.