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存储,不要操作原List

java 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怎么去除多条数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何去除 list里的重复数据

如何使用java代码向oracle数据库一次性插入多条数据

java中的list嵌套怎么弄的?

如何将从list集合中取出的数据一次性修改,再一次性保存?

对于java中如何去除重复的数据

java List怎么分组去重