У меня есть ArrayList tmp_list
, который может содержать повторяющиеся значения. Я хочу заполнить другой ArrayList filtered_tmp_list
только одним вступлением каждого значения. Вот что я сделал:Получить уникальные/неповторяющиеся значения из списка
ArrayList<String> filtered_tmp_list = new ArrayList<String>();
filtered_tmp_list.add((String) tmp_list.get(0));
for(int i=0; i<tmp_list.size(); i++){
String cmp = (String) tmp_list.get(i) ;
int doubled = 0;
for(int j=0; j<filtered_tmp_list.size(); j++){
String cmpd = (String) tmp_list.get(j) ;
if(cmp.compareTo(cmpd)==0){
doubled ++ ;
}
}
if(doubled==0) filtered_tmp_list.add(cmp);
}
Моя идея состояла в том, чтобы проверить, является ли значение -already в filtered_tmp_list
- присутствует в tmp_list
более чем один раз, если да, то я ничего не делать, в противном случае: если в два раза, равна нулю, это означает, что значения заслуживают вставки в filtered_tmp_list
.
Ну, как вы можете ожидать, я здесь, потому что получаю повторяющиеся значения ... Что я пропустил?
Спасибо.
CompareTo используется для заказа, а не для сравнивая равенство – Zavior
Я знаю, но это не является основной проблемой на данный момент или не так ли? – Akheloes
Что находится в 'tmp_list'? – johnchen902