# Arrays miteinander vergleichen



## Nikamort (29. Mai 2012)

Hallo liebe Leute,

da ihr mir vor einer Woche schonmal supertoll geholfen habt wollte ich euch nochmal was fragen....
ich soll etwas mit mehreren Punkten berechnen ( und deren x sowie y koordinaten berechnen).
vorab soll festgestellt werden ob die Punkte identisch sind...

leider bin ich noch nicht so gut mit den Arrays und bei meinem vergleich der punkte funktioniert es einfach nicht.
was mache ich falsch???
wenn ich jetzt alle punkte gleich angebe schreibt er nicht den satz und wiederholt die do while schleife auch nicht...


```
/**
 * Klasse ParabellageN.
 * 
 * @author (Ihr Name)
 * @version (eine Versionsnummer oder ein Datum)
 */

public class ParabellageN
{
    public static void main( String args[] ) {
        JConsole fenster = new JConsole("ParabellageN");
        char ja_nein;
        double x1,x2,x3,x4,y1,y2,y3,y4,a,b,c,y4i;
        double[] p1,p2,p3,p4;
        try{
            do{
            do{
             
                p1 = new double [2];
                p2 = new double [2];
                p3 = new double [2];
                p4 = new double [2];
                
                
                
              fenster.println(" Bitte geben sie die Variable x1 ein : ");
              p1[0] = fenster.readDouble();
              
              fenster.println(" Bitte geben sie die Variable y1 ein : ");
              p1[1] = fenster.readDouble();
              
             fenster.println(" Bitte geben sie die Variable x2 ein : ");
              p2[0] = fenster.readDouble();
              
              fenster.println(" Bitte geben sie die Variable y2 ein : ");
              p2[1] = fenster.readDouble();
              
              fenster.println(" Bitte geben sie die Variable x3 ein : ");
              p3[0] = fenster.readDouble();
              
              fenster.println(" Bitte geben sie die Variable y3 ein : ");
              p3[1] = fenster.readDouble();
              
              fenster.println(" Bitte geben sie die Variable x4 ein : ");
              p4[0] = fenster.readDouble();
              
              fenster.println(" Bitte geben sie die Variable y4 ein : ");
              p4[1] = fenster.readDouble();
             
              
              
              if( p1 == p2 || p1 == p3 || p1==p4 || p2==p3 || p2==p4 || p3==p4){
                  
                  fenster.println(" Die Punkte sollen verschieden sein! Bitte die Punkte erneut eingeben!");
                }
            }while( p1 == p2||p1 == p3||p1==p4||p2==p3||p2==p4||p3==p4);
            
            
            
        
        fenster.print ("Programm beenden? j/n: "  + '\n' );
        ja_nein = fenster.readChar ();
            
       }while(ja_nein=='n');
    fenster.println('\n'+"PROGRAMMENDE" );
    Thread.sleep(2000);
    System.exit(0); 
                
                }
          catch (InterruptedException ie) {}
    }
    
}
```


----------



## Gast2 (29. Mai 2012)

Arrays kannst du bspw. per 
	
	
	
	





```
Arrays.equals(array1, array2)
```
 vergleichen. Da aber dein Array nen Punkt repräsentiert würde ich aus den eingelesenen Werten eine Point instanz erzeugt. Diese kannst du dann per equals vergleichen.


----------



## Nikamort (29. Mai 2012)

ja die equals methode habe ich bereits in der Bibliothek gefunden aber wie wende ich sie auf meinen Fall an? 
außerdem muss ich noch mit den werten aus den Arrays rechnen kann ich das einfach so machen : !?

a = ( (p1[1]-p3[1])*(p1[0]-p2[0])-(p1[1]-p2[1])*(p1[0]-p3[0]));

Point instanz hab ich noch nie gehört.... bitte nicht noch mehr komplizierte sachen....


----------



## Nikamort (29. Mai 2012)

Kann mir jemand bitte sagen wie ich diese Arrays.equals benutze??? Google hilft mir da auch nicht weiter....
ich weiß auch nicht ob ich alle 4 so einfach hinter einander weg vergleichen kann !?


```
if(Java.util.Arrays.equals( p1,p2,p3,p4) ){
                  
                  fenster.println(" Die Punkte sollen verschieden sein! Bitte die Punkte erneut eingeben!");
                }
```

Beiße hier schon in die Tischkante weil mich das soooo nervt....


----------



## Gast2 (29. Mai 2012)

Nö kannste nicht, Arrays.equals erwartet nur genau zwei Parameter. Steht auch so in der API.


----------



## Nikamort (29. Mai 2012)

Ja und wie vergleiche ich die beiden jetzt!? also wie schreibe ich das genau in den quelltext???


----------



## Gast2 (29. Mai 2012)

```
boolean gleich = Arrays.equals(p1, p2);
```


----------



## Nikamort (29. Mai 2012)

bei deinem vorschlag sagt er mir : can not find symbol - Variable arrays
...und nun!?


----------



## Gast2 (29. Mai 2012)

Joa, da musst du natürlich die Klasse Arrays importieren.

PS:
Java von Kopf bis Fuß: Amazon.de: Kathy Sierra, Bert Bates, Lars Schulten, Elke Buchholz: Bücher


----------



## Nikamort (29. Mai 2012)

...und wie geht das ?
wenn ich :


```
import java.Arrays;
```

eingebe sagt er, dass er die klasse Array nicht findet...


----------



## Nikamort (29. Mai 2012)

Alles klar 

habs rausbekommen 

für alles schonmal vielen dank


----------



## AquaBall (30. Mai 2012)

Bei solchen:


Nikamort hat gesagt.:


> Alles klar
> habs rausbekommen


wär's günstig deinen Fehler und deine Lösung hier noch mal zusammenzufassen, dann haben andere auch was von Forum!


----------

