求助:两组List查找数据如何最高效的出结果

wz334809916 2018-03-23 02:04:45
list_1.size()为2500个;
list_2.size()为20000个;
list_1.get(i).getUser_card()有可能等于list_2.get(i).getUser_card()
我想得到list_1中不等于list_2中身份证的的list_1.get(i) 存成list_3;
请教各位大神,如何才能最高效的实现?
...全文
296 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wooblack 2018-03-23
  • 打赏
  • 举报
回复
如果你的list放的是对象的,要重写equals方法(这个比较最好写你获取的那个字段进行比较), 然后用他们方法就可以了
shiqing0115 2018-03-23
  • 打赏
  • 举报
回复
public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("1"); list1.add("2"); list1.add("6"); list1.add("7"); List<String> list2 = new ArrayList<String>(); list2.add("1"); list2.add("2"); list2.add("3"); list2.add("4"); list2.add("5"); List<String> list3 = new ArrayList<String>(); for (int i = 0; i < list1.size(); i++) { if (list2.indexOf(list1.get(i))==-1) { list3.add(list1.get(i)); } } System.out.println(list3); }
伫望-向北 2018-03-23
  • 打赏
  • 举报
回复
List<String> list1 = new ArrayList<String>(); List<String> list2 = new ArrayList<String>(); list1.add("1"); list1.add("2"); list1.add("3"); list1.add("4"); list1.add("5"); list2.add("4"); list2.add("5"); list2.add("6"); list2.add("7"); /* 第一种方法 System.out.println(list1.removeAll(list2)); System.out.println(list1);*/ // 第二种 Set<String> set = new HashSet<String>(); set.addAll(list2); set.addAll(list1); set.removeAll(list2); System.out.println(set);//最后set集合的数据就是list1中不等于list2的数据
oyljerry 2018-03-23
  • 打赏
  • 举报
回复
用hash会快些
自由自在_Yu 2018-03-23
  • 打赏
  • 举报
回复
public static void main(String[] args) {
		List<String> list1 = new ArrayList<String>();
		list1.add("1");
		list1.add("2");
		list1.add("6");
		list1.add("7");
		List<String> list2 = new ArrayList<String>();
		list2.add("1");
		list2.add("2");
		list2.add("3");
		list2.add("4");
		list2.add("5");
		Set<String> set2 = new HashSet<String>();
		set2 = new HashSet<String>(list2);
		List<String> list3 = new ArrayList<String>();
		for (int i = 0; i < list1.size(); i++) {
			if (set2.add(list1.get(i))) {
				list3.add(list1.get(i));
			}
		}
		System.out.println(list3);
	}

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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