java遍历list 并删除相同值对象

publicclassListTest{publicstaticvoidmain(String[]args){List<Pro>list=newArrayList();P... public class ListTest {
public static void main(String[] args) {

List<Pro> list = new ArrayList();
Pro p1 = new Pro("1000","1000");
Pro p2 = new Pro("1001","1002");
Pro p3 = new Pro("1003","1004");
Pro p4 = new Pro("1005","1006");
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);

for (Pro o:list) {
if(o.getProid().equals(o.getProName())){
list.remove(o);
}
}
System.out.println(list);
}
}

class Pro{
private String proid;
private String proName;

public String getProid() {
return proid;
}
public void setProid(String proid) {
this.proid = proid;
}
public String getProName() {
return proName;
}
public void setProName(String proName) {
this.proName = proName;
}
public Pro(String proid, String proName) {
super();
this.proid = proid;
this.proName = proName;
}
public Pro() {
}

}删除proid 等于proName的对象!
展开
 我来答
莔囧冏冋冂
推荐于2016-04-03 · TA获得超过642个赞
知道小有建树答主
回答量:411
采纳率:100%
帮助的人:549万
展开全部
用一个for循环遍历List时,不能删除其中的元素。

用Iterator操作即可。

还有 Pro类要重写一下 toString方法。这样System.out.println里才能打印出来。

import java.util.*;

public class ListTest {
public static void main(String[] args) {

List<Pro> list = new ArrayList();
Pro p1 = new Pro("1000","1000");
Pro p2 = new Pro("1001","1002");
Pro p3 = new Pro("1003","1004");
Pro p4 = new Pro("1005","1006");
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);

for (Iterator<Pro> i = list.iterator(); i.hasNext();) {
Pro o = i.next();
if(o.getProid().equals(o.getProName())){
i.remove();
}
}
System.out.println(list);
}
}

class Pro{
private String proid;
private String proName;

public String getProid() {
return proid;
}
public void setProid(String proid) {
this.proid = proid;
}
public String getProName() {
return proName;
}
public void setProName(String proName) {
this.proName = proName;
}
public Pro(String proid, String proName) {
super();
this.proid = proid;
this.proName = proName;
}
public Pro() {
}

public String toString() {
return proid + ":" + proName;
}
}
中国青春心
2012-06-19 · TA获得超过4637个赞
知道小有建树答主
回答量:1966
采纳率:83%
帮助的人:565万
展开全部
如果你是写一个活的方法,将list中相同对象删除。不用最佳答案,我只提供思路,你看一下。
对象之间不可能相同,最多是两个对象属性值完全相同,(除非指多个引用指向同一对象,这种情况在放集合里没意义。),要想所有属性值相同就必须重写toString()方法,在这里要说明的是如果你不确定实体都有什么属性,就用反射技术将其属性拿出,记得获取属性的时候要忽略级别。以免获取不到private的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-06-11
展开全部
.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式