import java.util.*;
/**
* Created by tWX344078 on 2016/6/22.
*/
public class CalculateTest {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1,2,34,12,2,1,4,5,34,5);
List<Integer> list2 = Arrays.asList(1,1,21,22,34,123,62,4,5,4,5);
List<Integer> list3 = new ArrayList<Integer>();
Map<Integer,List<Integer>> map1 = new HashMap<Integer, List<Integer>>();
for (Integer u : list1){
if(map1.get(u)==null){
map1.put(u,new ArrayList<Integer>());
}
map1.get(u).add(u);
}
Map<Integer,List<Integer>> map2 = new HashMap<Integer, List<Integer>>();
for (Integer u : list2){
if(map2.get(u)==null){
map2.put(u,new ArrayList<Integer>());
}
map2.get(u).add(u);
}
Set<Integer> set1 = map1.keySet();
Set<Integer> set2 = map2.keySet();
for(Integer s1 : set1){
for(Integer s2 : set2){
if(s1.equals(s2)){
list3.addAll(map1.get(s1));
list3.addAll(map2.get(s2));
}
}
}
for(Integer h : list3){
System.out.println(h);
}
// List<Integer> list3 = new ArrayList<Integer>();
//
// List<Integer> list4 = new ArrayList<Integer>();
// List<Integer> list5 = new ArrayList<Integer>();
// Set<Integer> set = new HashSet<Integer>();
// for(int i =0 ;i< list1.size();i++){
// for(int j=0;j<list2.size();j++){
// if(list1.get(i).equals(list2.get(j))){
// set.add(list1.get(i));
//
// }
// }
// }
// int outSize = list1.size();
// int intSize = list2.size();
// for(int i =0 ;i< outSize;i++){
// for(int j=0;j<intSize;j++){
//
// if(list4.size()>0){
// if(!list4.contains(j)){
// if(list1.get(i).equals(list2.get(j))){
// list3.add(list1.get(i));
// list3.add(list2.get(j));
//
// list4.add(j);
// }
// }
// }else{
// if(list1.get(i).equals(list2.get(j))){
// list3.add(list1.get(i));
// list3.add(list2.get(j));
//
// list4.add(j);
// }
// }
//
//
// }
// }
//
//
// for (Integer k : set){
// System.out.print(k);
// }
//
// for(Integer h : list3){
// System.out.println(h);
// }
// for(Integer h : list4){
// System.out.println(h);
// }
}
}
运行结果如下:
1
1
1
1
34
34
34
4
4
4
5
5
5
5
分享到:
相关推荐
比较两个集合是否相同(比较两个List内容是否相同) 利用Java反射机制,获取到字段名、方法名、字段值,进行逐个比较,此处本人封装好了工具类,接收的是泛型,调用者只需要传入两个实体List即可进行比较,返回true...
主要介绍了Java提取2个集合中的相同和不同元素代码示例,涉及对removeall方法的简单介绍,然后分享了主要的示例代码,具有一定借鉴价值,需要的朋友可以参考下。
c++程序设计实现集合交集并集差集.pdf
上面以两个集合为例说明了交集和并集的求法,事实上,上述算法可以很方便的扩展到3个或3个以上的集合 的求交集和求并集。另外求并集时,由于哈希表的值(VALUE)部分不需要用到,所以这个数据结构也可以更换为 ...
1.有序顺序表的元素按照从小到大有序存储; 2.实现有序顺序表的类模板,它的操作如下: ...3.用有序顺序表表示集合,实现两个有序顺序表的并和交(并和交仍是有序顺序表)并分析它们的时间复杂度;
#include using namespace std; int l,L; int vis = 0; char a[100],b[100],f='\0'; void jiao();... cout******输入集合A和B*******";... cout*******求集合A交B********"; cout*******求集合A并B********"; cout**
该源代码很好地体现了数组与List之间的转换,同时也体现了两个集合的合并操作
这只是一个简单的工具类java中处理两个数组之间元素的情况,具体的情况可以分为:两个数组之间新增集合,公共集合,减少的集合
已知两个单链表 LA 和 LB 分别表示两个集合,其元素递增排序,设计算法求出 LA 和 LB 的交集 C ,要求 C 同样以元素递增的单链表形式存储。
求两个集合的交集。 【输入形式】 从标准输入中读取两行以空格符分隔的正整数,每行整数的个数不大于100,整数值不超过1000,可能有重复的数。 【输出形式】 将每行看成一个集合,将交集元素...
设有两个用单链表表示的集合A、B,其元素类型是int且以非递减方式存储,其头结点分别为a、b。要求下面各问题中的结果集合同样以非递减方式存储,结果集合不影响原集合。 实现要求: ⑴ 编写集合元素测试函数IN_SET...
设有两个带头结点的单循环链表存储的集合A、B,其元素类型为字符或者整形,且以非递减方式存储,其头结点分别为ha、hb。要求下面各问题中的结果集合同样以非递减方式存储,结果集合不影响原集合。 2.实现要求: ⑶ ...
集合A、B的差集,由所有属于A但不属于B的元素构成。输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
通过链表和指针,实现两个整数集合的交并差,并顺序输出
设有两个用单链表表示的集合A、B,其元素类型是int且以非递减方式存储,其头结点分别为a、b。要求下面各问题中的结果集合同样以非递减方式存储,结果集合不影响原集合。 (1)编写集合元素测试函数IN_SET,如果元素...
2) difference()方法:返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中 语法: set. difference(set1, set2 ... etc) set1 -- 必需,要查找相同元素的集合 set2 -- 必需...
本文件为c++源代码,比较两个集合的大小,若集合的长度不等就退出,集合元素值累加相等则相等,供各位参考!
1集合的概念--集合与元素.doc
用C#代码,自定义泛型集合,泛型集合类中需要实现两个元素的交换。
采用单链表表示集合(集合中不出现重复的元素),将其按递增方式进行排序,构成有序单链表。