[英]How to remove a element from arraylist in android
我无法删除对象。如何从数组列表中删除对象?
List<kisi> x=new ArrayList<kisi>();
x.add(new kisi("1","betül"));
x.add(new kisi("2","hatice"));
x.add(new kisi("3","selma"));
kisi k=new kisi("2","hatice");
for (int i = 0; i < x.size(); i++) {
if (x.get(i).id==k.id) {
Object obj = x.remove(i);
break;
}
}
public class kisi {
public static String id="0";
public static String ad="0";
public kisi(String id,String ad) {
// TODO Auto-generated constructor stub
this.id=id;
this.ad=ad;
}
解
从kisi
类的成员变量中删除static
s。
还要注意
new kisi("1","betül")
因此,您的id
是一个String
。
当您遍历列表比较ID时,可以使用==
。
Java中的==
是相同的比较,不是相等的比较。 这与C#中的字符串行为不同。
因此,您应该这样做:
for (int i = 0; i < x.size(); i++) {
if (x.get(i).id.equals(k.id)) { //change here
Object obj = x.remove(i);
break;
}
}
在这个简单的示例中,这不会引起问题,因为两个"2"
字符串相同。 这使我得出结论,您的kisi
构造函数中发生了一些有趣的事情。 这是我使用过的代码,代码按原样工作:
public class kisi {
public String id;
public kisi(String id, String string2) {
this.id = id;
}
}
这样的构造函数将在没有.equals
调用的情况下破坏代码:
public kisi(String id, String string2) {
this.id = id + string2;
}
为了在遍历列表时安全地从列表中删除一个元素,您需要使用迭代器来进行操作。 否则,您可能会得到奇怪的结果!
在Java中,遍历列表时从列表中删除项目的唯一方法是通过Iterator。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.