JAVA编程题 求解

1.【问题描述】从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集... 1.

【问题描述】
从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集“异或”)。

【输入形式】
首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,输入最后一个字符作为一个集合的结束,行末有回车换行。

【输出形式】
按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。

【样例输入】

5 1 4 32 8 7 9 -6 A
5 2 87 10 1 B

【样例输出】
87 32 10 9 8 7 4 2 -6

【样例说明】
第一组整数为5 1 4 32 8 7 9 -6,第二组整数分别为5 2 87 10 1。将第一组和第二组整数合并(去掉在两组整数中都出现的整数5和1),并从大到小顺序排序后结果为87 32 10 9 8 7 4 2 -6。

【评分标准】该题要求输出两组整数的异或集,共有5个测试点,提交程序文件名为xor.c。
展开
 我来答
hitzsf
2014-03-19 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1174万
展开全部
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class Homework18_20 {
public static void main(String[] args) {
Integer[] arr1 = {5,1,4,32,8,7,9,-6};
Integer[] arr2 = {5,2,87,10,1};

ArrayList<Integer> ar1 = new ArrayList<Integer>(Arrays.asList(arr1));
System.out.println(ar1);
ArrayList<Integer> ar2 = new ArrayList<Integer>(Arrays.asList(arr2));



ArrayList<Integer> ar12 = new ArrayList<Integer>(Arrays.asList(arr1));
ar12.retainAll(ar2);  //ar12获得ar1 和 ar2的交集
System.out.println(ar12);

ar1.removeAll(ar12);  //ar1 异或
ar2.removeAll(ar12);  //ar2 异或

ArrayList<Integer> ar3 = new ArrayList<Integer>(); //新建结果集合
ar3.addAll(ar1);   //加入ar1异或
ar3.addAll(ar2);   //加入ar2异或

Collections.sort(ar3);  //ar3自然排序

for (int i = ar3.size() - 1; i > -1; i--) {
System.out.print(ar3.get(i) + "  ");  //倒序取出
}

}
}
天亮中
2014-03-19 · TA获得超过6755个赞
知道小有建树答主
回答量:1404
采纳率:66%
帮助的人:687万
展开全部
import java.util.*;

public class DealNum {

public static void main(String[] args){
Scanner scan=new Scanner(System.in);
String str1=scan.nextLine();
String str2=scan.nextLine();
String[] str1temp=str1.split(" ");
String[] str2temp=str2.split(" ");
Set<Integer> set=new TreeSet<Integer>();
for(int i=0;i<str1temp.length-1;i++){
set.add(Integer.parseInt(str1temp[i]));
}
for(int i=0;i<str2temp.length-1;i++){
if(set.contains(Integer.parseInt(str2temp[i]))){
set.remove(Integer.parseInt(str2temp[i]));
}else{
set.add(Integer.parseInt(str2temp[i]));
}
}
Integer[] strSet = new Integer[set.size()];
set.toArray(strSet);
for(int m=strSet.length-1;m>=0;m--){
System.out.println(strSet[m]);
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nanwanglsky
2014-03-20 · 超过23用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:46.5万
展开全部
java的程序名是.c结尾的么,还有,去重建议用set吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式