java ArrayList 如何去掉重复的对象以及本身
ArrayListal=newArrayList();XYPointxy=newXYPoint();XYPointxy2=newXYPoint();XYPointxy3=...
ArrayList al = new ArrayList();
XYPoint xy = new XYPoint();
XYPoint xy2 = new XYPoint();
XYPoint xy3 = new XYPoint();
xy.setXpoint(1);
xy.setYpoint(1);
al.add(xy);
ArrayList al2 = new ArrayList();
ArrayList al3 = new ArrayList();
XYPoint xy21 = new XYPoint();
XYPoint xy22 = new XYPoint();
XYPoint xy23 = new XYPoint();
xy21.setXpoint(1);
xy21.setYpoint(1);
xy22.setXpoint(2);
xy22.setYpoint(2);
xy23.setXpoint(3);
xy23.setYpoint(3);
去掉al al3 中重复的对象 展开
XYPoint xy = new XYPoint();
XYPoint xy2 = new XYPoint();
XYPoint xy3 = new XYPoint();
xy.setXpoint(1);
xy.setYpoint(1);
al.add(xy);
ArrayList al2 = new ArrayList();
ArrayList al3 = new ArrayList();
XYPoint xy21 = new XYPoint();
XYPoint xy22 = new XYPoint();
XYPoint xy23 = new XYPoint();
xy21.setXpoint(1);
xy21.setYpoint(1);
xy22.setXpoint(2);
xy22.setYpoint(2);
xy23.setXpoint(3);
xy23.setYpoint(3);
去掉al al3 中重复的对象 展开
5个回答
展开全部
第一种:只要存在重复的元素全部删除
public ArrayList<Object> RemoveRepeated(ArrayList<Object> arr) {
ArrayList<Object> tmpArr = new ArrayList<Object>();
for(int i=0; i<arr.size(); i++) {
if(tmpArr.contains(arr.get(i))) {
tmpArr.remove(indexOf(arr.get(i)));
}else {
tmpArr.add(arr.get(i));
}
}
return tmpArr;
}
第二种:存在重复的元素只保留一个
public ArrayList<Object> RemoveRepeated(ArrayList<Object> arr) {
ArrayList<Object> tmpArr = new ArrayList<Object>();
for(int i=0; i<arr.size(); i++) {
if(!tmpArr.contains(arr.get(i))) {
tmpArr.add(arr.get(i));
}
}
return tmpArr;
}
展开全部
网上有很多去掉arraylist里面重复的值的方法你可以上网搜一下,最简单的就是 使用HashSet转一下就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是查找重复对象还是查找对象的重复属性值呢?、
如果是查找重复对象的话,就没有重复的,你每次都是new了XYPoint。
如果是查找对象的重复属性值的话,可以用循环取出对象,然后再比较对象·属性。
比较对象的话方法同上。
如果是查找重复对象的话,就没有重复的,你每次都是new了XYPoint。
如果是查找对象的重复属性值的话,可以用循环取出对象,然后再比较对象·属性。
比较对象的话方法同上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你要保证 XYPoint 类的equals方法有按照你认为相同的条件,进行重写。
for(int i=0;i<al.size();i++){
XYPoint xyp = (XYPoint)al.get(i);
if(al3.indexOf(xyp)!=-1){
al3.remove(al3.indexOf(xyp));
al.remove(i);
}
}
如果没有重写equals方法的话
for(int i=0;i<al.size();i++){
XYPoint xyp = (XYPoint)al.get(i);
// if(al3.indexOf(xyp)!=-1){
// al3.remove(al3.indexOf(xyp));
// al.remove(i);
// }
for(int j=0;j<al3.size();j++){
XYPoint al3_xyp = (XYPoint)al3.get(i);
在这里对 xyp 与 al3_xyp 进行比较是否相同,在去做删除动作
}
for(int i=0;i<al.size();i++){
XYPoint xyp = (XYPoint)al.get(i);
if(al3.indexOf(xyp)!=-1){
al3.remove(al3.indexOf(xyp));
al.remove(i);
}
}
如果没有重写equals方法的话
for(int i=0;i<al.size();i++){
XYPoint xyp = (XYPoint)al.get(i);
// if(al3.indexOf(xyp)!=-1){
// al3.remove(al3.indexOf(xyp));
// al.remove(i);
// }
for(int j=0;j<al3.size();j++){
XYPoint al3_xyp = (XYPoint)al3.get(i);
在这里对 xyp 与 al3_xyp 进行比较是否相同,在去做删除动作
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如何理解你说的“本身”呢?
如果要在一个数据结构中,不包含其它相同的,你可以采用Set这个数据结构
如果要在一个数据结构中,不包含其它相同的,你可以采用Set这个数据结构
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询