Java 从方法返回ArrayList
从该方法返回arraylist时遇到问题。该方法应检查给定的保险类型与存储的保险类型。如果匹配,则将删除该元素并显示其余元素 请在此建议返回arraylist的语法Java 从方法返回ArrayList,java,arraylist,Java,Arraylist,从该方法返回arraylist时遇到问题。该方法应检查给定的保险类型与存储的保险类型。如果匹配,则将删除该元素并显示其余元素 请在此建议返回arraylist的语法 public ArrayList<Insurance> retrieveDetails(String insType){ Iterator<Insurance> itr=insurancelist.iterator(); while(itr.hasNext()) { Insurance c
public ArrayList<Insurance> retrieveDetails(String insType){
Iterator<Insurance> itr=insurancelist.iterator();
while(itr.hasNext()) {
Insurance c=itr.next();
if(c.getInsuranceType().equals(insType)) {
insurancelist.remove(c);
}
else
System.out.println(c);
}
public ArrayList retrieveDetails(String insType){
迭代器itr=insurancelist.Iterator();
while(itr.hasNext()){
保险c=itr.next();
如果(c.getInsuranceType()等于(insType)){
保险清单。删除(c);
}
其他的
系统输出打印ln(c);
}
您看到的原因:
[com。Insurance@2a139a55,com。Insurance@15db9742,com。Insurance@6d06d69c]
保险类没有toString()
方法。因此它使用对象中的默认toString()
方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
如果您想在打印保险对象时让它更有意义,那么您需要在Insurance.java中创建一个类似这样的方法,假设您有一个insuranceType字符串和一个policyID值作为类变量:
public String toString() {
return this.policyID+": "+this.insuranceType;
}
假设这就是你所拥有的:
enum InsuranceType {}
interface Insurance {
InsuranceType getType()
}
这里有两个简单的选项:
1.在列表上使用迭代器,并在执行时删除元素。
2.在列表上循环,找到所有要删除的元素,然后在迭代后删除它们
public List<Insurance> retrieveDetais(List<Insurance> insurances, InsuranceType type) {
List<Insurance> toRemove = new ArrayList<Insurance>();
for (Insurance i : insurances) {
if (i.getInsuranceType().equals(insuranceType)) {
toRemove.add(i);
}
}
for (Insurance i : toRemove) {
insurances.remove(i);
}
return insurances;
}
public List retrieveDetais(列出保险、保险类型){
List toRemove=new ArrayList();
保险(一:保险){
如果(i.getInsuranceType().equals(insuranceType)){
删除。添加(i);
}
}
对于(保险i:toRemove){
(i)删除第(i)款;
}
退货保险;
}
您始终可以使其更通用,或采用迭代器路线:
public List<Insurance> removeInsuranceType(List<Insurance> insurances, InsuranceType type) {
Iterator<Insurance> iter = insurances.iterator();
while (iter.hasNext()) {
Insurance i = iter.next();
if (i.getType() == type) {
iter.remove();
}
}
return insurances;
}
公共列表删除保险类型(列表保险、保险类型){
迭代器iter=Iterator.Iterator();
while(iter.hasNext()){
保险i=iter.next();
if(i.getType()==type){
iter.remove();
}
}
退货保险;
}
这甚至不会编译-您有{}你应该添加返回语句你可以建议返回ArrayList的语法吗跳过其他部分。打印列表中的每个保险,然后返回。另外,请注意大括号。你是不是真的来问如何从方法返回一些东西?如果你需要有人建议如何做最基本的事情之一可能的话,你将有一个艰难的时间去任何地方