求助 求助!!!2个 java 编程的问题
老师给了2道题目不会做。。。请求各位帮忙。。。第一道题目是一个array中有10个数字,然后把重复数字去除。比方说输入1232163452显示出123645第二道题目是判...
老师 给了 2道题目 不会做。。。 请求 各位帮忙。。。
第一道题目 是 一个 array 中 有 10个数字,
然后把 重复 数字 去除。
比方说 输入 1 2 3 2 1 6 3 4 5 2
显示出 1 2 3 6 4 5
第 二道 题目是 判断 2个 array 里面的 内容 是否一样。
比方说 输入
array 1 :5 5 2 6 1 6
array 2 : 5 2 5 6 6 1
结果是: 他们是一样的。
请各位 不要用 太高深 的 指令。。。
我是初学者 。。。只学到 if, loop, array 这些 基本的而已。。。。
谢谢各位了。。。。
hey...我还没学到 Arrays.sort...有没有 更原始的方法。。。 展开
第一道题目 是 一个 array 中 有 10个数字,
然后把 重复 数字 去除。
比方说 输入 1 2 3 2 1 6 3 4 5 2
显示出 1 2 3 6 4 5
第 二道 题目是 判断 2个 array 里面的 内容 是否一样。
比方说 输入
array 1 :5 5 2 6 1 6
array 2 : 5 2 5 6 6 1
结果是: 他们是一样的。
请各位 不要用 太高深 的 指令。。。
我是初学者 。。。只学到 if, loop, array 这些 基本的而已。。。。
谢谢各位了。。。。
hey...我还没学到 Arrays.sort...有没有 更原始的方法。。。 展开
5个回答
展开全部
最原始的只能这样排序后处理了,完整代码如下:
public class Test {
public static void main(String args[]) {
int[] ary = {1, 2, 3, 2, 1, 6, 3, 4, 5, 2};
//Ary will be sorted as {1, 1, 2, 2, 2, 3, 3, 4, 5, 6}
sortArray(ary);
//output
int previous = ary[0];
System.out.print(previous);
for(int i = 1; i < ary.length; i++){
if(ary[i] != previous){
previous = ary[i];
System.out.print("\t" + ary[i]);
}
}
System.out.println();
int[] ary1 = {5, 5, 2, 6, 1, 6};
int[] ary2 = {5, 2, 5, 6, 6, 1};
sortArray(ary1);
sortArray(ary2);
if(ary1.length != ary2.length){
System.out.println("Different array because of size");
}
boolean isSameAry = true;
for(int i = 0; i < ary1.length; i++){
if(ary1[i] != ary2[i]){
isSameAry = false;
System.out.println("Different array because of item");
break;
}
}
if(isSameAry){
System.out.println("Same array!");
}
}
//Sort array
private static void sortArray(int[] ary) {
for(int i = 0; i < ary.length; i++){
for(int j = i; j < ary.length; j++){
if(ary[j] < ary[i]){
int temp = ary[i];
ary[i] = ary[j];
ary[j] = temp;
}
}
}
}
}
---------------------------
1 2 3 4 5 6
Same array!
public class Test {
public static void main(String args[]) {
int[] ary = {1, 2, 3, 2, 1, 6, 3, 4, 5, 2};
//Ary will be sorted as {1, 1, 2, 2, 2, 3, 3, 4, 5, 6}
sortArray(ary);
//output
int previous = ary[0];
System.out.print(previous);
for(int i = 1; i < ary.length; i++){
if(ary[i] != previous){
previous = ary[i];
System.out.print("\t" + ary[i]);
}
}
System.out.println();
int[] ary1 = {5, 5, 2, 6, 1, 6};
int[] ary2 = {5, 2, 5, 6, 6, 1};
sortArray(ary1);
sortArray(ary2);
if(ary1.length != ary2.length){
System.out.println("Different array because of size");
}
boolean isSameAry = true;
for(int i = 0; i < ary1.length; i++){
if(ary1[i] != ary2[i]){
isSameAry = false;
System.out.println("Different array because of item");
break;
}
}
if(isSameAry){
System.out.println("Same array!");
}
}
//Sort array
private static void sortArray(int[] ary) {
for(int i = 0; i < ary.length; i++){
for(int j = i; j < ary.length; j++){
if(ary[j] < ary[i]){
int temp = ary[i];
ary[i] = ary[j];
ary[j] = temp;
}
}
}
}
}
---------------------------
1 2 3 4 5 6
Same array!
展开全部
问一:
Map m=new HashMap();
for (int i;i<list.size,i++){
m.put(array.get(i),array.get(i));
}
迭代输出M的值就行了
问二
Map m=new HashMap();
Map m1=new HashMap();
for (int i;i<array1.size,i++){//两个array的size应该是一样的吧!
m.put(array1.get(i),array1.get(i));
m.put(array2.get(i),array2.get(i));
m1.put(array1.get(i),array1.get(i));
}
之后比较m.size与m1.size是不是一样,不一样说明内容是不同的
Map m=new HashMap();
for (int i;i<list.size,i++){
m.put(array.get(i),array.get(i));
}
迭代输出M的值就行了
问二
Map m=new HashMap();
Map m1=new HashMap();
for (int i;i<array1.size,i++){//两个array的size应该是一样的吧!
m.put(array1.get(i),array1.get(i));
m.put(array2.get(i),array2.get(i));
m1.put(array1.get(i),array1.get(i));
}
之后比较m.size与m1.size是不是一样,不一样说明内容是不同的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题1用Set解决,set不能保存同样的实例
int[] arr1 = { 1, 2, 3, 2, 1, 6, 3, 4, 5, 2 };
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
System.out.println("*******************");
Set set = new HashSet();
for (int i = 0; i < arr1.length; i++)
set.add(arr1[i]);
Iterator it = set.iterator();
while (it.hasNext()) {
Integer in = (Integer) it.next();
System.out.println(in);
}
问题2用Arrays来解决
int[] array1 = { 5, 5, 2, 6, 1, 6 };
int[] array2 = { 5, 2, 5, 6, 6, 1 };
Arrays.sort(array1);
Arrays.sort(array2);
System.out.println(Arrays.equals(array1, array2));
int[] arr1 = { 1, 2, 3, 2, 1, 6, 3, 4, 5, 2 };
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
System.out.println("*******************");
Set set = new HashSet();
for (int i = 0; i < arr1.length; i++)
set.add(arr1[i]);
Iterator it = set.iterator();
while (it.hasNext()) {
Integer in = (Integer) it.next();
System.out.println(in);
}
问题2用Arrays来解决
int[] array1 = { 5, 5, 2, 6, 1, 6 };
int[] array2 = { 5, 2, 5, 6, 6, 1 };
Arrays.sort(array1);
Arrays.sort(array2);
System.out.println(Arrays.equals(array1, array2));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实,你知道思想就可以自己调试写出来的。
1。循环A数组,取出一个数来,放到另外一个数组里面(B数组),然后在取出一个数字,看B数组里面有没有这个数字,没有就放进去,有就不放,最后输出B数组就行了。
2。循环A数组,取出一个数字,判断B数组中,是否包含这个数字,一直处理完A数组,就行了。
1。循环A数组,取出一个数来,放到另外一个数组里面(B数组),然后在取出一个数字,看B数组里面有没有这个数字,没有就放进去,有就不放,最后输出B数组就行了。
2。循环A数组,取出一个数字,判断B数组中,是否包含这个数字,一直处理完A数组,就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题
int[] ary = {1, 2, 3, 2, 1, 6, 3, 4, 5, 2};
int maxValue=0;
for(int i=0;i<ary.length;i++){
if(ary[i]>maxValue)maxValue=ary[i];
}
int[] array=new int[maxValue];
for(int i=0;i<ary.length;i++){
array[ary[i]]=1;
}
for(int i=0;i<array.length;i++){
if(array[i]==1)
System.out.println(i);
}
第二题 也可用上面方法解 或者先对两个数组分别排序 然后一一比较
int[] ary = {1, 2, 3, 2, 1, 6, 3, 4, 5, 2};
int maxValue=0;
for(int i=0;i<ary.length;i++){
if(ary[i]>maxValue)maxValue=ary[i];
}
int[] array=new int[maxValue];
for(int i=0;i<ary.length;i++){
array[ary[i]]=1;
}
for(int i=0;i<array.length;i++){
if(array[i]==1)
System.out.println(i);
}
第二题 也可用上面方法解 或者先对两个数组分别排序 然后一一比较
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询