去除List> 中重复数据

粮多多 2014-08-04 09:26:19
List<List<String>> a= new ArrayList<List<String>>();

List<String> param = new ArrayList<String>();
param.add("张三");
param.add("23");

List<String> param2 = new ArrayList<String>();
param2.add("张三");
param2.add("23");

List<String> param3= new ArrayList<String>();
param3.add("李四");
param3.add("23");

导入了

a.add(param);
a.add(param2);
a.add(param3);


插入数据的会插入2个张三,一个李四,能去除掉重复的张三么?只保留第一个或者最后一个重读的数据
...全文
1753 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaxinhuo 2014-08-06
  • 打赏
  • 举报
回复
用set去做 自动去重复!
zy_think123 2014-08-05
  • 打赏
  • 举报
回复
用HashSet,或者是Treeset就搞定了,你如果用list的话,那么自己添加的时候还需要判断
scott_129 2014-08-05
  • 打赏
  • 举报
回复
可以使用List中的contains判断一下,再存。也可以直接之用map或者set来进行存取,如果有重复的,map会将已经存在的值替换掉,这样就只存在一个了。
vnvlyp 2014-08-05
  • 打赏
  • 举报
回复
数据量小就在add前遍历List检查是否已经存在 数据量大的话应该首选HashSet而不是List
jinwei877811422 2014-08-05
  • 打赏
  • 举报
回复
用set 它后存入的数据直接把以前的就给覆盖了
lliiqiang 2014-08-05
  • 打赏
  • 举报
回复
使用HashSet
flower_lover 2014-08-05
  • 打赏
  • 举报
回复
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class Test7 { public static void main(String args[]){ Set<List<String>> a= new HashSet<List<String>>(); List<List<String>> a2= new ArrayList<List<String>>(); List<String> param = new ArrayList<String>(); param.add("张三"); param.add("23"); List<String> param2 = new ArrayList<String>(); param2.add("张三"); param2.add("23"); List<String> param3= new ArrayList<String>(); param3.add("李四"); param3.add("23"); a.add(param); a.add(param2); a.add(param3); a2.addAll(a); System.out.println(a2); } }
gkvlkdflsdflksd 2014-08-05
  • 打赏
  • 举报
回复
可以用TreeSet存啊。自动去除重复项
业余草 2014-08-05
  • 打赏
  • 举报
回复
或者你用set集合也是可以的
业余草 2014-08-05
  • 打赏
  • 举报
回复

   for (int i = 0; i < a.size() - 1; i++) {                             //循环遍历集体中的元素
         for (int j = a.size() - 1; j > i; j--) {                         //倒序的比较
              if (a.get(j).equals(a.get(i))) {
              a.remove(j);
              }
        }
    }
你可以试一试
静山晚风 2014-08-05
  • 打赏
  • 举报
回复
只加一行代码即可
静山晚风 2014-08-05
  • 打赏
  • 举报
回复
使用set会自动清除
LOVE-漂泊 2014-08-05
  • 打赏
  • 举报
回复
HashSet就可以解决 hashset是去取重复的然后保存 Map集合,就是有一对属性值的集合,属性包含key,和value。关键字key是唯一不重复的。Map是一个有序的集合,所以查询起来速度很快。而HashSet就像是把HashMap中value去掉,说白了就是只有一个key的HashMap集合。Set是数学中定义的集合,所以元素无序, 且不能重复添加
中华雪碧 2014-08-04
  • 打赏
  • 举报
回复
对顺序没要求,就用Map,这样就不重复了。

Map map = new HashMap();
map.put("张三",list);
tony4geek 2014-08-04
  • 打赏
  • 举报
回复
你怎么不用 hash存, 如果list 你应该定义个类, 然后重写equals
shixitong 2014-08-04
  • 打赏
  • 举报
回复
package shi;

import java.util.ArrayList;
import java.util.List;

public class Test7 {

	public static void main(String args[]){
		List<List<String>>  a= new ArrayList<List<String>>();

		List<String> param = new ArrayList<String>();
		param.add("张三");
		param.add("23");

		List<String> param2 = new ArrayList<String>();
		param2.add("张三");
		param2.add("23");

		List<String> param3= new ArrayList<String>();
		param3.add("李四");
		param3.add("23");
		
		if(!a.contains(param)){
			a.add(param);
		}
		if(!a.contains(param2)){
			a.add(param2);
		}
		if(!a.contains(param3)){
			a.add(param3);
		}
		System.out.println(a);
	}
}
IT丶小青年 2014-08-04
  • 打赏
  • 举报
回复

   for (int i = 0; i < a.size() - 1; i++) {                             //循环遍历集体中的元素
         for (int j = a.size() - 1; j > i; j--) {                         //倒序的比较
              if (a.get(j).equals(a.get(i))) {
              a.remove(j);
              }
        }
    }

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧