import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Integer> list1 = new ArrayList<Integer>();
for(int i = 0 ; i < 5; i ++){
list1.add(i);
}
list1.add(4);
ArrayList<Integer> list2 = new ArrayList<Integer>();
for(int i = 0 ; i < 10; i ++){
list2.add(i);
}
deleteRepeatData(list1);
deleteRepeatData(list2);
intersect(list1, list2);
Integer integer[] = union(list1, list2);
for(int i = 0 ; i < integer.length ; i ++){
System.out.println("union(list1, list2);== "+ integer[i]);
}
}
/**
* 数组的交集
* @param list1
* @param list2
*/
private static void intersect(ArrayList<Integer> list1,
ArrayList<Integer> list2) {
int size1 = list1.size();
int size2 = list2.size();
if(size1 > size2){
for(int i = 0 ; i < size1 ; i ++){
for(int k = 0 ; k < size2 ; k ++){
if(list1.get(i) == list2.get(k)){
System.out.println("list1.get("+ i + ") == " + list1.get(i));
}
}
}
}else{
for(int i = 0 ; i < size2 ; i ++){
for(int k = 0 ; k < size1 ; k ++){
if(list2.get(i) == list1.get(k)){
System.out.println("list2.get("+ i + ") == " + list2.get(i));
}
}
}
}
}
/**
*去掉数组中重复的数据
* @param numList
*/
private static void deleteRepeatData(ArrayList<Integer> numList) {
Iterator<Integer> iterator = numList.iterator();
int temp = -1;
if(iterator.hasNext()){
temp = iterator.next();
}
while(iterator.hasNext()){
int i = iterator.next();
if(i == temp ){
iterator.remove();
}else{
temp = i;
}
}
System.out.println(numList);
}
/**
* 数组的并集
* 求两个字符串数组的并集,利用set的元素唯一性
* @param arrayList1
* @param arrayList2
* @return
*/
public static Integer[] union(ArrayList<Integer> arrayList1,ArrayList<Integer> arrayList2){
Set<Integer> set = new HashSet<Integer>();
for(Integer in : arrayList1){
set.add(in);
}
for(Integer in : arrayList2){
set.add(in);
}
Integer[] integers = new Integer[]{};
set.toArray(integers);
return set.toArray(integers);
}
}
分享到:
相关推荐
利用java 语言,实现数组的并集交集补集,数组可键入。
求java数组的交集,并集,差集 实现方法简单但很实用
java jsonarray 踢重 去重操作
用于两个已排序数组的交集和并集的程序。 IntersectionUnion.java 数组 程序查找两个二进制数组中最长的跨度和。 LongestSpan.java 链表 链接列表创建代码。 LinkedListCreation.java 链表 链接列表插入代码。...
这种类型的对象可以存储10个20~80之间的整数,即他的内部有一个整型数组存储数据。编程: (1) 判断两个inergerSet类对象S1和S2是否相等。提示:集合相等的前提是所有元素相等。 (2) 输出两个集合对象的交集。 ...
找出两个已排序数组的并集和交集。 数组 || 编写一个程序,将数组循环旋转一个。 数组 || 找到最大和连续子数组 [V. 输入法] 数组 || 最小化高度之间的最大差异 [V.IMP] 数组 || 最低数量到达数组末尾的跳转次数 ...
特别是,可以快速计算一系列集合的交集,这些交集可用于将查询实现为子查询的并集。 此实现基于和上的Java和C实现。 此实现的其他功能: 倒排列表表示:大部分已满的块都紧凑地存储为非成员数组(而不是成员数组...
找出两个已排序数组的并集和交集。 <-> 数组 编写一个程序,将数组循环旋转一个。 <-> 数组查找最大和连续子数组 [V. IMP] <-> 数组最小化高度之间的最大差异 [V.IMP] <-> 阵列最小数量到达数组末尾的...
找出两个已排序数组的并集和交集。 <-> 大批 编写一个程序,将数组循环旋转一个。 <-> 大批 找到最大和连续子数组 [V. 输入法] <-> 大批 最小化高度之间的最大差异 [V.IMP] <-> 大批 最低数量到达数组...
找出两个已排序数组的并集和交集。 <-> 大批 编写一个程序,将数组循环旋转一个。 <-> 大批 找到最大和连续子数组 [V. 输入法] <-> 大批 最小化高度之间的最大差异 [V.IMP] <-> 大批 最低数量到达数组...
15.列表的常用操作之求并集,交集,差集 16.创建不可变集 17.不可变集的常见操作 18.创建可变集 19.创建不可变Map 20.创建可变Map 21.Map的基本操作 22.使用迭代器遍历集合 23.函数式编程之foreach 24.函数式...