2010-11-18 4 views
0

Salut J'ai écrit un code que je vais mettre juste une partie de ce qui a un problème. J'ai un arrayList<Point> dont la taille est 4. J'ai passé les 3 éléments de cette liste à une méthode mais avec System.out.println je reçois 3 y au lieu de 1 y !! ce qui est mal .please aide me.thanksquel est le problème avec int [] []

CODE:

public int determinal(Object get, Object get0, Object get1) { 
    Point point = (Point) get; 
    Point point1 = (Point) get0; 
    Point point2 = (Point) get1; 
    int[][] data = new int[3][2]; 
    data[0][0] = point.getX(); 
    data[0][1] = point.getY(); 
    data[1][0] = point1.getX(); 
    data[1][1] = point1.getY(); 
    data[2][0] = point2.getX(); 
    data[2][1] = point2.getY(); 
    System.out.println(data[1][1]); 
    return ((data[0][0] - data[2][0]) * (data[2][1] - data[2][1]) * (data[1][0] - 
data[2][1]) * (data[0][1] - data[2][1])); 
    } 

SORTIE:

X :225 Y: 86 
X :92 Y: 164 
X :238 Y: 154 
86 
164 
154 

Je préfère imprimer seulement 164 mais il imprimera tous y. Aussi j'ai un autre System.out.println qui imprime le X et Y de tous mes trois points (cette méthode n'est pas mentionnée ci-dessus)

+0

Vous semblez être confus au sujet de la différence entre l'impression ** ** sortie à la console et ** ** retour des valeurs d'une fonction. Votre exemple de code fait les deux. Peut-être que votre fonction 'determinal()' est appelée plus de fois que prévu? –

+0

Aussi, puisque cela semble être des devoirs, vous devriez probablement ajouter l'étiquette 'homework' à la question. –

Répondre

1

ce n'est pas vraiment clair ce que vous pensez que le problème est mais je pense que vous êtes juste confus parce que vos variables sont nommées de manière incohérente.

par exemple, si je supprimer le code sans rapport avec l'appel System.out.println:

public int determinal(Object get, Object get0, Object get1) { 
    Point point1 = (Point) get0; 
    int[][] data = new int[3][2]; 
    data[1][1] = point1.getY(); 
    System.out.println(data[1][1]); 
    } 

puis encore réduire:

public int determinal(Object get, Object get0, Object get1) { 
    System.out.println(((Point) get0).getY()); 
    } 

peut vous voir ce qui se passe maintenant?

+0

Je n'ai pas eu vraiment, je l'ai testé et le deuxième impression OK, mais pourquoi? – user472221

+0

il ne devrait pas imprimer différemment à la méthode originale. aussi, il ne sert à rien d'assigner les valeurs à un int [] [] '. référez-vous directement aux points. c'est plus lisible et donc moins susceptible d'être confus. – pstanton

+0

merci beaucoup pour votre aide! – user472221

0

Je pense que quelque chose ne va pas avec votre méthode d'appel, pouvez-vous poster l'échantillon pour la méthode d'appel? Ou assurez-vous que vous auriez un certain contrôle de bouclage à l'intérieur de votre méthode d'appel, ce serait la raison de cette cause.

-Saligh