2012-11-29 66 views
0

我一直在爲學校做評估。它要求我在不同的對象中創建兩個數組。沒有什麼太花哨只是得到一些隨機數字。一切都按照我想要的方式進行,但是當我嘗試比較兩個不同對象的兩個數組時,它會出錯。這裏是我的代碼從不同的對象訪問數組

public class Opdracht8 { 

    public static void main(String[] args) { 

    Verzameling A = new Verzameling (20, 3); 
    System.out.println("Verzameling A:\n" + A); 
    System.out.println(); 

    Verzameling B = new Verzameling (20, 4); 
    System.out.println("Verzameling B:\n" + B); 

    System.out.println(); 
    System.out.println("A deelverzameling van B? " + A.deelverzamelingVan(B)); 

    } 
} 

和「計算部」

import java.util.Random; 

class Verzameling { 
    static int [] elementen; 

    Verzameling(int aantal, int seed) { 
     elementen = new int[aantal]; 
     Random randomGenerator = new Random(seed); 
     int [] tijdelijkeArray = new int [100]; 
     /* Vullen van de vergelijkings array met de waarde van 1 tot 100 
     */ 

     for (int counter = 0; counter < 100; counter ++) { 
      tijdelijkeArray[counter] = counter + 1; 
     } 

     /* Random getal genereerder. Hier vind het ook het swappen plaats dmv een 
     * temporary variable 
     */ 

     for (int index = 0; index < aantal; index ++) { 
      int randomNumber = index + randomGenerator.nextInt(100 - index); 

      int temp = tijdelijkeArray[index]; 
      tijdelijkeArray[index] = tijdelijkeArray[randomNumber]; 
      tijdelijkeArray[randomNumber] = temp; 

     } 

     for(int index = 0; index < aantal; index++) { 
      elementen[index] = tijdelijkeArray[index]; 
     } 
    } 

    Verzameling(int[] elementen) { 
     this.elementen = elementen; 

    } 

    boolean deelverzamelingVan(Verzameling V) { 

     for (int counter = 0; counter < this.elementen.length; counter ++) { 
      if (this.elementen[counter] == V.elementen[counter]) { 
       System.out.println(this.elementen[counter] +" " + V.elementen[counter]); 
       if (counter == (this.elementen.length - 1)) { 
        return true; 
       }  
       continue; 
      } 
      else 
       return false; 

     } 
     return false; 


    } 



    public String toString() { 
     String reeks = ""; 
     for (int i = 0; i < elementen.length; i ++) 
      reeks = reeks + elementen[i] + " "; 

     return reeks; 
    } 
} 

我很奇怪的變量名的採摘遺憾。但是你有什麼想法如何解決這個問題。我已經嘗試了很多東西,此刻變得非常沮喪。

+3

*「當我嘗試比較兩個不同對象的數組時,它會出錯」*:請詳細說明。 **什麼**出錯? –

+0

感謝Rohit編輯帖子:) –

+0

這有幫助嗎? http://stackoverflow.com/questions/13627972/using-arrays-from-a-different-class/13628001#comment18691066_13628001 –

回答

0

對於數組比較,您可以使用Java SE方法Arrays.equals(array1, array2)

另外你還宣佈你的elementen靜態

+0

我在第二個腳本的頂部完成了這個任務。這有點複雜,但我需要檢查數組1中是否存在數組2的值。所以它不必位於某個位置。 –

+0

該死的......謝謝我看到它!最後啊。非常感謝。我終於可以繼續我的任務 –

+0

沒問題。你可以接受或upvote我的答案,如果它幫助:) – bellum