如何删除ArrayList中的重复项。我是android编程的新手,我也尝试过研究其他的但是我很难弄清楚如何消除类似的项目。一些建议是使用hashmap但我不知道在哪里放它。这是我的代码。
mAdapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, list);
lvList.setAdapter(mAdapter);
lvList.setOnItemClickListener(this);
schoolIndex.clear();
ArrayList<String> finalFilterList = list;
ArrayList<String> finalSchoolsList = new ArrayList<String>(
Arrays.asList(this.sList));
for (int i = 0; i < finalFilterList.size(); i++) {
for (int o = 0; o < finalSchoolsList.size(); o++) {
if (finalFilterList.get(i).equalsIgnoreCase(
finalSchoolsList.get(o))) {
schoolIndex.add(o);
}
}
}
mAdapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, list);
lvList.setAdapter(mAdapter);
lvList.setOnItemClickListener(this);
if (list.isEmpty()) {
Toast.makeText(getActivity(), "No Hospitals Found",
Toast.LENGTH_SHORT).show();
navi.dia.show();
}
return v;
答案 0 :(得分:1)
如果要删除重复项,可以将所有元素添加到Set,然后将它们添加回ArrayList,但如果使用Set,则将丢失订单。
当您在适配器中使用ArrayList时,我建议您使用保留订单的LinkedHashSet
试试这个:
List<String> arrayList = new ArrayList<>(); // this will be your arraylist
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.addAll(arrayList);
arrayList.clear();
arrayList.addAll(linkedHashSet);
答案 1 :(得分:0)
您可以删除重复项:
Set<String> set = new HashSet<String>('Your ArrayList');
// Then you can create a new ArrayList, this will be a list with no duplicates
ArrayList<String> newList = new ArrayList<String>(set);
很抱歉,如果这不回答问题