【发布时间】:2014-09-23 19:45:49
【问题描述】:
我正在为我的面试做准备,并且我已经完成了 Java 中两个数组的联合。我在 Internet 上搜索了很多示例,但是所有示例都使用了 Java 中可用的默认函数,例如 Set 等。我不想使用默认函数,这可能对我的程序有利。因为这就是公司会给我诸如“不使用任何默认功能的 AuB”之类的问题的方式。所以我花了 30 分钟,终于找到了解决方案。我不是在问任何问题,我只需要人们就我的逻辑提出建议,无论它是好的还是你迄今为止看到的最垃圾的逻辑,如果有人在不使用默认功能的情况下寻找解决方案,这也会很有帮助。
import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;
public class Union {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter Size of A array: ");
int asize = input.nextInt();
int[] a = new int[asize];
for(int i=0;i<a.length;i++){
System.out.print("a["+i+"]: ");
a[i] = input.nextInt();
}
System.out.print("Enter size of B array: ");
int bsize = input.nextInt();
int[] b = new int[bsize];
for(int i=0;i<b.length;i++){
System.out.print("b["+i+"]: ");
b[i] = input.nextInt();
}
int count;
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<a.length;i++){
count = 0;
for(int j=0;j<=i;j++){
if(a[i]!=a[j]){
count++;
}
}
if(count==i){
list.add(a[i]);
}
}
for(int i=0;i<b.length;i++){
count = 0;
for(Integer e:list){
if(b[i]!=e){
count++;
}
}
if(count==list.size()){
list.add(b[i]);
}
}
for(Integer e:list){
System.out.print(e+" ");
}
}
}
【问题讨论】:
-
你确定
list.sort(null)是正确的/不是内置函数。 -
这只是一个额外的步骤,我不想对其进行排序。为了清楚起见,我现在将其删除。谢谢。
-
“我没有问任何问题...” 请记住,Stack Overflow 是一个问答网站。如果您没有提出问题,那么我们无法给出答案。
-
如果您可以对数组进行排序,则可以进行更简单/更有效的合并排序。或者您可以对组合数组进行排序和去重。
-
@Code-Apprentice 是的,我知道。我还发布了一些愚蠢的帖子,这些帖子浪费了我和会员的时间。我不担心我的反对票,我认为即使没有提出问题,建议也可能属于答案类别。如果没有用,请删除我的帖子。