У меня есть код, проверяющий существование элементов arraylist в другом arraylist, если он добавит этот элемент в новый arraylist. (вид фильтрации).проверка существования строки в Arraylist
ArrayLists Имена:
checking elements arraylist: CoreSite.
Reference ArrayList: SpinnerSelectionArrayList. (received from multichoice spinner)
New ArrayList: MCoreSite.
проблема все возможные пути я пытался сравнивать только элемент первого элемента списка ссылок! если совпадение соответствует. если нет, он не проверяет со вторым элементом ссылочного arraylist .. и я не могу найти wwhy ?!
Я использовал содержит(), и я также пытаюсь подсчитать и проверить результат подсчета.
Edit: Решено, результат вертушка возвращается дополнительное пространство после каждой запятой, поэтому только первый элемент согласования :) .. большое спасибо
код:
ReaderGo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SpinnerSelectionString = multiSpinner.getSpinnerText();
if(SpinnerSelectionString == null){
Toast.makeText(getApplicationContext(), "Select Core Sites First", Toast.LENGTH_LONG).show();
}
else {
SpinnerSelectionString = SpinnerSelectionString.replaceAll(",", "\",\"");
SpinnerSelectionString = "[\"" + SpinnerSelectionString + "\"]";
try {
JSONArray jsonArray = new JSONArray(SpinnerSelectionString);
SpinnerSelectionStringArray = new String[jsonArray.length()];
for (int i = 0; i < jsonArray.length(); i++) {
SpinnerSelectionStringArray[i] = jsonArray.getString(i);
}
} catch (JSONException e) {
e.printStackTrace();
}
Collections.addAll(SpinnerSelectionArrayList, SpinnerSelectionStringArray);
MCoreSite.clear();
for (int i = 0; i < CoreSite.size(); i = i + 1) {
int count = Collections.frequency(SpinnerSelectionArrayList, CoreSite.get(i));
if (count!=0) {
MCoreSite.add(CoreSite.get(i));
}
}
Toast.makeText(getApplicationContext(), SpinnerSelectionArrayList.toString(), Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), CoreSite.toString(), Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), MCoreSite.toString(), Toast.LENGTH_LONG).show();
}
}
});
ниже являются тостов скриншоты для трех массивов:
Элементы массива:
@SheriffSaidElahi у вас есть два arraylist, и если какой-либо общий элемент найден между ними, вы должны добавить этот элемент в новый arraylist, я понял вас правильно или не??? – Dhiraj
@Dhiraj, да, вы правы. Я сравниваю каждый элемент в CoreSite с ссылочным списком под названием SpinnerSelectionArrayList. если он найден, я добавляю его в новый список. (другими словами, я фильтрую список CoreSite на основе выбора в списке ссылок). –
@ M.Suurland, уверенный список CoreSite (мои элементы) имеют дубликаты .. почему это должно привести к проблеме? –