求助 两个 数组 差集 ,或交集 求助 两个 数组 差集 ,或交集arrayA={01,02,03,04,05,06}arrayB={02,03,09,10,11,12,14,15}通过比较要得到他们差集. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用equals遍历比较两个数组双重循环把相同的找出来就是交集删除本数组中任何存在于另一数组中元素剩下的就是差集 转为Set遍历a,看b里面是否包含,包含就删,不包含就添到b里面 import java.util.Arrays;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;public class TestArrUnite{ private Integer[] arr1 ={1,2,3}; private Integer[] arr2 ={2,3,4}; public static void main(String[] args) { TestArrUnite test = new TestArrUnite(); Integer UniteArr [] = test.uniteArr(); Arrays.sort(UniteArr); for(int i:UniteArr){ System.out.print(i+ " "); } System.out.println(); Integer ChaArr [] = test.chaArr(); Arrays.sort(ChaArr); for(int i:ChaArr){ System.out.print(i+ " "); } } public Integer[] uniteArr(){ List arrL1= Arrays.asList(arr1); List arrL2= Arrays.asList(arr2); Set hst = new HashSet(arrL1); hst.addAll(arrL2); return (Integer [])hst.toArray(new Integer [0]); } public Integer[] chaArr(){ List arrL1= Arrays.asList(arr1); Set hst = new HashSet(arrL1); for(Integer i:arr2){ if(!hst.add(i)){ hst.remove(i); } } return (Integer []) hst.toArray(new Integer[0]); }} import java.util.*;public class Sets { /**交集*/ public static Set<String> intersection(Set<String> setA, Set<String> setB) { Set<String> setIntersection = new HashSet<String>(); String s = ""; Iterator<String> iterA = setA.iterator(); while (iterA.hasNext()) { s = iterA.next(); if(setB.contains(s)) { setIntersection.add(s); } } return setIntersection; } /**差集*/ public static Set<String> difference(Set<String> setA, Set<String> setB) { Set<String> setDifference = new HashSet<String>(); String s = ""; Iterator<String> iterA = setA.iterator(); while (iterA.hasNext()) { s = iterA.next(); if(!setB.contains(s)) { setDifference.add(s); } } return setDifference; } public static void main(String[] args) { String[] strA = {"green", "blue", "red", "pink", "yellow"}, strB = {"red", "green"}; Set<String> setA = new HashSet<String>(), setB = new HashSet<String>(), setC = null; /**将数组元素加到集合*/ for (int i = 0; i < strA.length; i++) { setA.add(strA[i]); } for (int i = 0; i < strB.length; i++) { setB.add(strB[i]); } /**求交集结果*/ setC = intersection(setA, setB); System.out.println("交集: " + setC); /**求差集结果*/ setC = difference(setA, setB); System.out.println("差集: " + setC); }} 通过JAVA编写登录远程telnet机器,并且显示远程机器目录的问题 el表达式${sessionScope.shoppingCart[0].price}如何理解 final(结局)关键字是什么意思呢? netwebs快来拿分! 如何和浏览器产生一个socket通讯???----在线等待 急!急!!急!!! Jcreator第一次启动的时候出现的对话框有什么作用,我要怎么样设置?? 希望有人来做一做JAVA的性能研究. 关于路径选择对话框 请大家来讨论一下JAVA的速度问题 如何得到一个文件的生成时间? 怎么去获得JComboBox里的内容 think in java里的练习,请指教
双重循环把相同的找出来就是交集
删除本数组中任何存在于另一数组中元素剩下的就是差集
遍历a,看b里面是否包含,包含就删,不包含就添到b里面
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class TestArrUnite
{
private Integer[] arr1 ={1,2,3};
private Integer[] arr2 ={2,3,4};
public static void main(String[] args)
{
TestArrUnite test = new TestArrUnite();
Integer UniteArr [] = test.uniteArr();
Arrays.sort(UniteArr);
for(int i:UniteArr){
System.out.print(i+ " "); }
System.out.println();
Integer ChaArr [] = test.chaArr();
Arrays.sort(ChaArr);
for(int i:ChaArr){
System.out.print(i+ " ");
}
}
public Integer[] uniteArr(){
List arrL1= Arrays.asList(arr1);
List arrL2= Arrays.asList(arr2);
Set hst = new HashSet(arrL1);
hst.addAll(arrL2); return (Integer [])hst.toArray(new Integer [0]);
}
public Integer[] chaArr(){
List arrL1= Arrays.asList(arr1);
Set hst = new HashSet(arrL1);
for(Integer i:arr2){
if(!hst.add(i)){
hst.remove(i);
}
}
return (Integer []) hst.toArray(new Integer[0]);
}
}
public class Sets {
/**交集*/
public static Set<String> intersection(Set<String> setA, Set<String> setB) {
Set<String> setIntersection = new HashSet<String>();
String s = "";
Iterator<String> iterA = setA.iterator();
while (iterA.hasNext()) {
s = iterA.next();
if(setB.contains(s)) {
setIntersection.add(s);
}
}
return setIntersection;
}
/**差集*/
public static Set<String> difference(Set<String> setA, Set<String> setB) {
Set<String> setDifference = new HashSet<String>();
String s = "";
Iterator<String> iterA = setA.iterator();
while (iterA.hasNext()) {
s = iterA.next();
if(!setB.contains(s)) {
setDifference.add(s);
}
}
return setDifference;
}
public static void main(String[] args) {
String[] strA = {"green", "blue", "red", "pink", "yellow"},
strB = {"red", "green"};
Set<String> setA = new HashSet<String>(),
setB = new HashSet<String>(),
setC = null;
/**将数组元素加到集合*/
for (int i = 0; i < strA.length; i++) {
setA.add(strA[i]);
}
for (int i = 0; i < strB.length; i++) {
setB.add(strB[i]);
}
/**求交集结果*/
setC = intersection(setA, setB);
System.out.println("交集: " + setC);
/**求差集结果*/
setC = difference(setA, setB);
System.out.println("差集: " + setC);
}
}