java中 list怎么去除多条数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中 list怎么去除多条数据?相关的知识,希望对你有一定的参考价值。
例如:
import java.util.ArrayList;
public class Test
public static void main(String[] args)
String a= "";
ArrayList<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
for (int i = 0; i < list.size(); i++)
a = list.get(i);
if("3".equals(a))
list.remove(i);
if("4".equals(a))
list.remove(i);
for (int i = 0; i < list.size(); i++)
a=list.get(i);
System.out.println(a);
一种是用循环,一个个移除,一种是用removeAll函数
我给出removeAll的例子
public static void main(String[] args)
List<Integer> listOne = new ArrayList<Integer>();
//add 8 elements
listOne.add(1);
listOne.add(2);
listOne.add(3);
listOne.add(4);
listOne.add(5);
listOne.add(6);
listOne.add(7);
listOne.add(8);
List<Integer> listTwo = new ArrayList<Integer>();
//add 4 elments
listTwo.add(2);
listTwo.add(3);
listTwo.add(4);
listTwo.add(5);
listOne.removeAll(listTwo);//remove the elements in listOne which also in listTwo
System.out.println(listOne);//result [1,6,7,8]
参考技术A 再建一个ArrayList,将要删除的数据放入此集合,然后原来的list直接remove要删除的list追问
这个你试过?你是说
ArrayList list1 = new ArrayList();
for (int i = 0; i < list.size(); i++)
a = list.get(i);
if("3".equals(a))
list1.add(list.get(i));
if("4".equals(a))
list1.add(list.get(i));
这个样子,然后再list.remove(list1);?????
代码写出来之后再ide中运行,不就行了,对不对就知道了,具体方法名可能有问题,我一般想不起来之后,直接用ide的帮助显示
参考技术B 你可以把list元素转换成HashMap,利用Map特性直接剔除了重复元素。追问list怎么转成hashmap?能给我个具体的代码吗?
参考技术C 最好用临时List存储,不要操作原Listjava List怎么分组去重
有一个List里面存放的是对象,对象是 Sh(hm, credit, year, 1, sessionid),现在要根据year来去除hm的重复数据,要怎么实现?
使用set集合啊,set集合是不能放重复的数据的。Set hashSet = new HashSet(list);
然后在转过来就行了,set去除重复是调用了equals方法,所以你在Sh里面要重写equals方法,自定义比较的规则,例如:
public boolean equals(Object obj)
if(obj==null) return false;
if(obj==this) return true;
Sh sh = (Sh)obj;
if(sh.getHm()==this.getHm())
return true;
return false;
参考技术A 用set集合吧. 那个是不允许重复的,操作和list一样追问
但是不同年的hm是可以一样的,这要怎么实现
追答你就在对象中重写equals方法, 判断要同年和hm都一样的才算是相同的对象.
参考技术B 使用 HashSet 重写 equals 方法与hashcode 方法简单说明下 HashSet 的实现:
把调用add 方法时, 要求每个对象出示其hashcode()方法返回值,检查是否相同,不同则接纳,相同调用equals方法进行比较 ,相同丢弃,不相同接纳 参考技术C 重写Sh的equals方法
以上是关于java中 list怎么去除多条数据?的主要内容,如果未能解决你的问题,请参考以下文章