我有一个代码,用于检查另一个 arraylist 中是否存在 arraylist 元素,如果找到,则将此元素添加到新的 arraylist 中。 (某种过滤)。
ArrayList 名称:
checking elements arraylist: CoreSite.
Reference ArrayList: SpinnerSelectionArrayList. (received from multichoice spinner)
New ArrayList: MCoreSite.
问题是我尝试的所有可能方法都只是将元素与引用列表的第一个元素进行比较!如果匹配则算。如果没有,它不会检查引用数组列表的第二个元素..并且我找不到wwhy?!
我使用了 contains(),并且我也尝试计数并检查计数的结果。
编辑:已解决,微调器结果在每个逗号后返回额外的空格,这就是为什么只有第一个元素匹配:) ..非常感谢
代码:
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();
}
}
});
以下是三个数组的 toast 屏幕截图:
元素数组:
最佳答案
尝试下面的代码:
ArrayList<String> result = new ArrayList();
for(int i = 0; i < firstList.size(); i++) {
String item = firstList.get(i);
if(secondList.contains(item)) {
result.add(item);
}
}
结果是第一个 List
和第二个列表中存在的元素列表。如果我理解正确的话,这就是你想要的。
教育事实 - 这会起作用,因为列表使用 equals()
来检查两个元素是否相同,而不是 ==。因此,具有相同内容的两个不同String
将被视为公共(public)元素:-)
关于java - 检查 Arraylist 中字符串是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37542699/