2014-09-23 33 views
-4

我已經爲我的訪談做好了準備,並且已經完成了Java中兩個數組的聯合。我搜索了互聯網,它有很多的例子,但一切都利用Java中可用的默認功能,如設置等。我不想使用默認功能,無論哪個可能會給我的程序帶來好處。因爲這就是公司會給我帶來問題的方式,比如「AuB沒有使用任何默認功能」。所以我花了30分鐘,最終找到了解決方案。我沒有問任何問題,我只是需要人們對我的邏輯提出建議,不管它是好還是迄今爲止您看到的最蠢的邏輯,如果有人在不使用默認功能的情況下尋找解決方案,它也會很有幫助。在Java中沒有默認函數的兩個數組的聯合

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+" "); 
     } 
    } 
} 
+2

你確定'list.sort(null)'是正確的/不是內置函數。 – 2014-09-23 19:47:28

+0

這只是一個額外的步驟,我不想對其進行排序。爲了清除我現在將它刪除。謝謝。 – user562 2014-09-23 19:48:52

+4

「我沒有問任何問題......」請記住,Stack Overflow是一個問題和答案網站。如果你不問問題,那麼我們不能給出答案。 – 2014-09-23 19:49:05

回答

1

您的代碼顯示爲正常。

一個簡單的邏輯的修改,你可以做的是,而不是使用count ++對每個重複的值,只是 把從陣列中的整數您的ArrayList <>和陣列將下一個整數,當A剛剛通過的ArrayList <解析>檢查我們是否已經存在號碼。然後對Array B也可以做同樣的事情。

0

我可能完全避免使用java.util.List,因爲這個問題應該純粹是關於數組。你知道這兩個數組的大小,並且可以將數據存儲在一個大小爲a.length + b.length的數組中,因爲你知道union的長度永遠不會超過這個長度。

+0

是的,第三個數組不會超過a + b大小,但第三個數組中的其餘元素將會有0,並且它還會在最後打印0(s)。 – user562 2014-09-23 20:06:23

相關問題