LIST循环问题

lihao1129 2014-03-24 04:45:41
List list = new ArrayList();
list.add("1");
list.add("2");
List list1 = new ArrayList();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list1.add("5");

List list2 = new ArrayList();

for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list1.size(); j++) {
if (!list.get(i).equals(list1.get(j))) {
System.out.println(list1.get(j));
}
}
}
我想要的结果是345,吧相同的都去掉,是怎么循环呢,我现在的代码结果为23451345。
...全文
243 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mergades 2014-06-24
  • 打赏
  • 举报
回复
接分
lliiqiang 2014-06-24
  • 打赏
  • 举报
回复
lab1:for (Object obj:list){ for (Object obj1:list1){ if (obj.equals(obj1)) { continue lab1; } } System.out.println(obj); } lab2:for (Object obj:list1){ for (Object obj1:list){ if (obj.equals(obj1)) { continue lab2; } } System.out.println(obj); }
tianmaxingkong139 2014-06-23
  • 打赏
  • 举报
回复
你的连个循环调换一下位置,不久轻松解决了吗
日知己所无 2014-06-23
  • 打赏
  • 举报
回复
这种帖子最欢乐啦,接分
yuhouqingchen_2648 2014-06-23
  • 打赏
  • 举报
回复
可以参考如下实现
public static void main(String[] args) throws Exception {
		List<String> list = new ArrayList<String>();
		list.add("1");
		list.add("2");
		List<String> list1 = new ArrayList<String>();
		list1.add("1");
		list1.add("2");
		list1.add("3");
		list1.add("4");
		list1.add("5");

		List<String> list2 = new ArrayList<String>();
		int minlen = 0;

		// 获得公共长度
		minlen = list.size() <= list1.size() ? list.size() : list1.size();
		for (int i = 0; i < minlen; i++) {
			if (!list.get(i).equals(list1.get(i))) {
				list2.add(list.get(i));
				list2.add(list1.get(i));
			}
		}

		// list长度大于list1长度
		if (list.size() > minlen) {
			for (int i = minlen; i < list.size(); i++) {
				list2.add(list.get(i));
			}
		}

		// list1长度大于list长度
		if (list1.size() > minlen) {
			for (int i = minlen; i < list1.size(); i++) {
				list2.add(list1.get(i));
			}
		}
		for (String str : list2) {
			System.out.println(str);
		}
	}
原来代码中的问题为 list中每一个元素都需要和list1中的所有元素比较,增加了很多不必要的结果
蓝晨大菜鸟 2014-03-24
  • 打赏
  • 举报
回复
引用 4 楼 u011464534 的回复:
List list = new ArrayList(); list.add("1"); list.add("2"); List list1 = new ArrayList(); list1.add("1"); list1.add("2"); list1.add("3"); list1.add("4"); list1.add("5"); List list2 = new ArrayList(); for (int i = 0; i < list.size(); i++) { boolean b=ture; for (int j = 0; j < list1.size(); j++) { if (list1.get(i).equals(list.get(j))) { b=false; break; } } if(b){ System.out.println(list1.get(j)); } }
System.out.println(list1.get(j)); 改为System.out.println(list1.get(i));
蓝晨大菜鸟 2014-03-24
  • 打赏
  • 举报
回复
List list = new ArrayList(); list.add("1"); list.add("2"); List list1 = new ArrayList(); list1.add("1"); list1.add("2"); list1.add("3"); list1.add("4"); list1.add("5"); List list2 = new ArrayList(); for (int i = 0; i < list.size(); i++) { boolean b=ture; for (int j = 0; j < list1.size(); j++) { if (list1.get(i).equals(list.get(j))) { b=false; break; } } if(b){ System.out.println(list1.get(j)); } }
suciver 2014-03-24
  • 打赏
  • 举报
回复
因为你的元素都是非常简单的容易比较的Serializable实现直接用removeAll

List list = new ArrayList();
list.add("1");
list.add("2");
List list1 = new ArrayList();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list1.add("5");
list1.removeAll(list);
System.out.println(list);
ay转身遇 2014-03-24
  • 打赏
  • 举报
回复
接分了
lihao1129 2014-03-24
  • 打赏
  • 举报
回复
我自己解决了,来的送分吧,,,
1 / 3(一) 大纲_Python 基础(3 天×6h) 课时:18 小时(6 小时×3 天)课程简介 本课程从零基础开始介绍 Python 编程知识,快速入门 Python 语言基础,循序渐进地掌握 Python 模块的构建和 Python 程序的代码的基本功能的实现。学员基础  了解计算机基本操作,掌握一般文字输入和处理的基础知识 了解计算机软件,硬件等基本概念课程目标  全面认识 Python,包括语言特点、应用领域、安装与执行原理、集成开发环境的使用等 掌握 Python 的基础语法,实现简单的程序编写 熟练使用 Python 的各种数据结构,掌握各自的适用场景 熟练使用模块和包,理解使用模块的好处,在工作中灵活借助模块实现需求课程内容 Python 概述及开发环境搭建 1.1 Python 应用领域 1.2 常见编程语言特点  Python 语言特点 面向对象与面向过程 编译型与解释型1.3 Python IDE 集成开发环境  PyCharm 安装及配置 Python 编程语言基础 2.1 库、包、模块 2.2 变量的定义及命名规范 2.3 书写规范 2.4 命名规范 2.5 运算符  算数运算符、逻辑运算符、赋值运算符、比较运算符、成员运算符、身份运算符2 / 3 运算符优先级 流程控制 3.1 流程控制语句结构 3.2 分支结构 if else 的语法结构及应用场景  多条件判断3.3 循环语句  for 语句 while 语句 嵌套循环循环控制语句 跳出循环 常用数据类型及其函数 4.1 字符串 str 4.2 整数 int、浮点小数 float 4.3 布尔型 bool 4.4 列表 list  数值列表 range 数值列表转列表:list 函数 遍历列表 列表解析4.5 元组 tuple 4.6 字典 dict 4.7 集合 set 4.8 切片 4.9 在列表中存储字典 4.10 在字典中存储列表、字典 4.11 高级数据类型的运算 4.12 案例演练  练习:登录验证3 / 3 练习:遍历元组 练习:遍历集合 练习:while 循环列表 函数 5.1 函数的定义和作用  定义函数规范 调用函数5.2 函数的参数和返回值 5.3 局部变量与全部变量 5.4 位置参数与关键字参数 5.5 缺省参数与多值参数 5.6 数据的不可变类型与可变类型 5.7 常用内置函数  输出输入函数:print、input dir 函数 包与模块 6.1 了解库、包、模块 6.2 模块的导入方式  导入整个模块(.py) 导入模块中的函数 自定义模块的导入与应用6.3 定义别名 6.4 了解与制作包  导入包的方式6.5 常用标准库  time:日期时间计算 os:文件和目录处理

62,614

社区成员

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

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