2012-11-29 163 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