我想将arraylist与我的状态列表进行比较,以在主片段中显示unBlocked状态,这是我要比较的数据
this is **idStatusBlocked = {"sdads # asdadsf # advdvff"};**<br>
this is **listData = [{"idStatus":"asdfsdf", "name":"BWaaa"}, {"idStatus":"advdvff","name":"aaaa"}];**
此代码是在我强制执行阻止操作之前
@Override
public void setList(List<StatusObject> listData){
adapter.addAll(listData);
adapter.notifyDataSetChanged();
}
并且为了实现阻止的操作,这是我尝试的
@Override
public void setList(List<StatusObject> listData){
PreferenceHelper helper = new PreferenceHelper(mContext);
String item = helper.getString(PreferenceHelper.BLOCK);
String[] idStatusBlocked = item.split("#");
List<StatusObject> filter = new ArrayList<>();
for (String v : idStatusBlocked) {
if (!listData.contains(v)) {
filter.add((StatusObject) listData);
}
}
}
我从上面的代码得到的只是将 listData 的大小与 idStatusBlocked 进行比较,我想要的是什么
1。如何将idStatus
中的listData
与idStatusBlocked
进行比较?
2。在比较数据后,如何使用我的适配器进行调度?
答案 0 :(得分:0)
将setList
更改为此
@Override
public void setList(List<StatusObject> listData){
PreferenceHelper helper = new PreferenceHelper(mContext);
String item = helper.getString(PreferenceHelper.BLOCK);
Set<String> blocked = new HashSet<>(Arrays.asList(item.split("#")));
List<StatusObject> filter = new ArrayList<>();
for (StatusObject s : listData) {
if (!blocked.contains(s.getIdStatus())) {
filter.add(s);
}
}
}