两个ArrayList合并的算法

liuzuowei007 2011-11-07 03:42:30
现有两个list要合并成一个,每个两个list有完全相同的元素,假设全是从1到10的数字元素。
现要得到一个由两列表的不重复的组合。
要求满足:
1、组合中不能是相同的数,例如不能是1-1,2-2
2、组合中正反不重复,例如有1-2就不能再出现2-1

各位大大,这个小算法如何实现?实现的越简单越好,谢谢
...全文
319 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
良才2015 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 funfenffun 的回复:]
Java code


import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class Test04 {
public static void main(String[] args){
……
[/Quote]
这位仁兄不是回答了吗,还不够吗
gukuitian 2011-11-07
  • 打赏
  • 举报
回复
哦。看来2楼代码,感觉明白了
liuzuowei007 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 funfenffun 的回复:]
我猜lz要的是这结果
1-2
1-3
1-4
1-5
1-6
1-7
1-8
1-9
1-10
2-3
2-4
2-5
2-6
2-7
2-8
2-9
2-10
3-4
3-5
3-6
3-7
3-8
3-9
3-10
4-5
4-6
4-7
4-8
4-9
4-10
5-6
5-7
5-8
5-9
5-10
6-7
6-8……
[/Quote]

对。。这么简单个需求居然有人看不懂...
这个已经很简单了..不需要更简单的了..比我自己实现的简单...
结贴给分不墨迹...
kouyiSC 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 funfenffun 的回复:]
Java code


import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class Test04 {
public static void main(String[] args){
……
[/Quote]

这种效果估计是lz要的。。。
liuzuowei007 2011-11-07
  • 打赏
  • 举报
回复
怎么会看不懂   我真晕...
funfenffun 2011-11-07
  • 打赏
  • 举报
回复
我猜lz要的是这结果
1-2
1-3
1-4
1-5
1-6
1-7
1-8
1-9
1-10
2-3
2-4
2-5
2-6
2-7
2-8
2-9
2-10
3-4
3-5
3-6
3-7
3-8
3-9
3-10
4-5
4-6
4-7
4-8
4-9
4-10
5-6
5-7
5-8
5-9
5-10
6-7
6-8
6-9
6-10
7-8
7-9
7-10
8-9
8-10
9-10
liuzuowei007 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gukuitian 的回复:]
看不懂,楼下呢?
[/Quote]

[Quote=引用 3 楼 java_123456789 的回复:]
引用楼主 liuzuowei007 的回复:
现有两个list要合并成一个,每个两个list有完全相同的元素,假设全是从1到10的数字元素。
现要得到一个由两列表的不重复的组合。
要求满足:
1、组合中不能是相同的数,例如不能是1-1,2-2
2、组合中正反不重复,例如有1-2就不能再出现2-1

各位大大,这个小算法如何实现?实现的越简单越好,谢谢

两个要求相互矛盾!不能相同……
[/Quote]

第一个要求针对一个组合的两个元素不能相等
第二个是说组合和组合之间正反不重复,也就是说1-2和2-1实际上应该理解成同一组元素。

两位大大懂了么。。。
sdliubo 2011-11-07
  • 打赏
  • 举报
回复
也看不懂。
麦穗 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 liuzuowei007 的回复:]
现有两个list要合并成一个,每个两个list有完全相同的元素,假设全是从1到10的数字元素。
现要得到一个由两列表的不重复的组合。
要求满足:
1、组合中不能是相同的数,例如不能是1-1,2-2
2、组合中正反不重复,例如有1-2就不能再出现2-1

各位大大,这个小算法如何实现?实现的越简单越好,谢谢
[/Quote]
两个要求相互矛盾!不能相同肯定就不重复啊!
funfenffun 2011-11-07
  • 打赏
  • 举报
回复

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class Test04 {
public static void main(String[] args){
List list1 = new ArrayList();
List list2 = new ArrayList();
List list = new ArrayList();
for(int i=1;i<11;i++){
list1.add(i);
list2.add(i);
}
for(int j=0;j<list1.size();j++){
for(int k=j+1;k<list2.size();k++){
list.add(list1.get(j)+"-"+list2.get(k));
}
}
for(int l=0;l<list.size();l++){
System.out.println(list.get(l));
}
}
}

gukuitian 2011-11-07
  • 打赏
  • 举报
回复
看不懂,楼下呢?

62,615

社区成员

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

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