android中判断一个ArrayList集合中是否包含某个元素,androidarraylist
分享于 点击 22700 次 点评:265
android中判断一个ArrayList集合中是否包含某个元素,androidarraylist
方式一:
if (deviceNameList != null && !deviceNameList.contains(name)) {
MyLogManager.d("添加的名字", name);
deviceNameList.add(name);
getDeviceBindState(name, device.getAddress());
}
方式二:
if (!TextUtils.isEmpty(name) && name.contains("zhahuan")) {
MyLogManager.d("扫描到的名字", name);
if (deviceNameList != null && deviceNameList.size() == 0) {
MyLogManager.d("显示的名字1", name);
deviceNameList.add(name);
} else {
String addName = null;
for (int i = 0; i < deviceNameList.size(); i++) {
if (name.equals(deviceNameList.get(i))) {
addName = name;
}
}
if (addName == null) {
//集合中没有这个元素时添加
deviceNameList.add(name);
MyLogManager.d("显示的名字", name);
}
}
}
这是简单的,方式一和方式二都可以用,其实查看方式一的源码可以看出来contains内部实现就是方式二.
但是如果集合中存放的是一个有多个字段的对象,要根据一个对象里面的某个字段判断这个对象存不存在集合中就不能用方式一了,下面是详细的例子:
myselfdevicebean对象中有多个字段,要根据deviceidstring这个字段来判断集合中是否存在这个对象
MyselfDeviceBean needUpdateBean = null;
for (int i = 0; i < mMyselfDeviceItems.size(); i++) {
MyselfDeviceBean myselfDeviceBean = mMyselfDeviceItems.get(i);
if (deviceIdString.equals(myselfDeviceBean.getDeviceIdString())) {
needUpdateBean = myselfDeviceBean;
}
}
if (needUpdateBean != null) {//这个字段的对象已存在集合中刷新这个对象
needUpdateBean.setBoundState(boundState);
needUpdateBean.setWhatDevice(whatDevice);
mMyselfDeviceAdapter.setList(mMyselfDeviceItems);
} else {//这个字段不存在集合中,创建对象并添加到集合中
MyselfDeviceBean mdBean = new MyselfDeviceBean(deviceName, deviceIdString, boundState, whatDevice, deviceAddress);
mMyselfDeviceItems.add(mdBean);
mMyselfDeviceAdapter.setList(mMyselfDeviceItems);
}
相关文章
- 暂无相关文章
用户点评