java检查集合中是否包含对象
public class Address{
private TypeAddress typeAddress;
private String street;
//Getters and Setters
...
}
public class TypeAddress{
private String type;
//Getters and Setters
...
}
我有一系列地址
Collection<Address> addresses = db.getAddresses();
我需要检查一下是否有客户会选择的地址类型。 这只是假装一种情况,好让你们理解
我想要的是,我只想得到一种类型的地址,即客户收到的类型。如果他选择了一个不存在的类型,我会选择另一个地址。 所以,我基本上需要做两个循环来检查是否有它的类型,如果有,我会在下一个循环中选择它。如果不是,我将在下一个循环中选择另一个。 有没有办法使用集合的contains方法来检查地址的类型是否符合我的要求
比如:
if(addresses.contains("someType")){//remind that I'm trying to check not the object Address, but the object TypeAddress
//get this address
}else{
//get another address
}
# 1 楼答案
# 2 楼答案
使用
Map<TypeAddress, Address>
可以验证所需的地址是否存在,并相对快速轻松地获取它别忘了以适当的方式重写类
TypeAddress
的方法equals
和hashCode
# 3 楼答案
我想你可能在寻找一种方法来打破一个循环,或者在循环的开始继续。非常方便,它们被称为
break
和continue
或者
# 4 楼答案
您可以使用Apache CollectionUtils API:
# 5 楼答案
如果你被迫使用一个集合(而不是像建议的那样使用一个映射),为什么不能迭代一次并将最“有希望”的实例存储为某个地址引用:
# 6 楼答案
即使包含内部循环逻辑,也要使用Map