Addition von Arrays über die Parameterliste

LucaToni

Aktives Mitglied
Hallo, versuche mich gerade an folgender Aufgabe.

Ich erstelle ein Array-Objekt/Vektor.

Nun möchte ich mit einer Methode ein weiteres Objekt übergeben und die beiden Vektoren addieren.

Mein Code sieht momentan so aus:
Java:
public class Vek
{
    double []vektor;
    int dimension;
    
    public Vek(double []vektor)
    {
        vektor=new double[vektor.length];
        dimension=vektor.length;
    }
    
    public double componentAt(int i)
    {
        return vektor[i];
    }
    public Vek add(Vek b)
    {   
    Vek res = new Vek();
            for(int i=0;i<vektor.length;i++)
                res.vektor[i]=vektor[i]+b.vektor[i];
            return res;
        }
}

Jemand ne Idee??
Vor allem was muss ich denn bei Vek res= new Vek(??????); als Parameter übergeben. Ich denke mein Fehler ist irgendwo in der Methode add(Vek b)
 

TM69

Bekanntes Mitglied
Da du dein Objekt instanzieren willst durch:
Code:
res= new Vek(??????);

und deine Konstruktor:
Code:
Vek(double []vektor)
lautet.

müsste der Aufruf wie folgt erfolgen
Code:
double[] daten;
Vek vek = new Vek(daten);
 
K

kneitzel

Gast
Und dann auch noch ein paar kleine Anregungen:
- Du speicherst die Länge des Arrays auch doppelt. Das Array kennt seine Länge (vektor.length), daher ist es nicht notwendig, diese noch einmal zu speichern. Merkst Du teilweise ja auch daran, dass Du die in add noch nicht einmal nutzt! Wenn Du das von Außen anfragen können willst, dann geht so ein Getter natürlich auch:
Code:
public int getDimensions() {
  return vektor.length;
}
- in add solltest Du prüfen, ob die beiden Vektoren die gleiche Größe haben. Sonst bekommst Du ggf. eine ArrayIndexOutOfBoundsException.
 

LucaToni

Aktives Mitglied
Danke für den Hinweis.

Im Konstruktor erstellst du zwar ein neues Array mit der entsprechenden Länge, übernimmst die Werte aber nicht.
Java:
public class Vek
{
    double []vektor;
    int dimension;
    
    public Vek(double []vektor)
    {   this.vektor=vektor;
        vektor=new double[vektor.length];
        dimension=vektor.length;
    }
    
    public double componentAt(int i)
    {
        return vektor[i];
    }
    public Vek add(Vek b)
    {   
    Vek res = new Vek(vektor);
            for(int i=0;i<vektor.length;i++)
                res.vektor[i]=vektor[i]+b.vektor[i];
              System.out.println(res);
        return res;
    }
}

Jetzt habe ich das Problem, dass die Schleife zwar richtig summiert aber meine neues Array in den anderen beiden gepeichert wird und nicht in einem neuen array mit dem namen res... -.-
 

LucaToni

Aktives Mitglied
Und dann auch noch ein paar kleine Anregungen:
- Du speicherst die Länge des Arrays auch doppelt. Das Array kennt seine Länge (vektor.length), daher ist es nicht notwendig, diese noch einmal zu speichern. Merkst Du teilweise ja auch daran, dass Du die in add noch nicht einmal nutzt! Wenn Du das von Außen anfragen können willst, dann geht so ein Getter natürlich auch:
Code:
public int getDimensions() {
  return vektor.length;
}
- in add solltest Du prüfen, ob die beiden Vektoren die gleiche Größe haben. Sonst bekommst Du ggf. eine ArrayIndexOutOfBoundsException.

Ja die Variable habe ich nicht mehr benutzt, dachte vielleicht brauche ich die im Laufe der Aufgabe irgendwann und hab die deshalb schonmal deklariert und zugewiesen. Aber danke für den Hinweis.
 

LucaToni

Aktives Mitglied
DU vermischt 2 mögliche Variante.
Entweder du weißt den vektor direkt zu Oder du erstellst ein neues Array mit der Gleichen Größe und kopierst die Werte einzeln rein.
OKay. hab jetzt nur this.vektor=vektor gelassen und die zuweisung entfernt.
Aber warum wird mein Ergebnis-Array nicht in einem neuen Array gespeichert sondern im Array welches ich übergebe? Habe doch in der Methode mit res = new Vektor(vektor) eine neues Objekt res erzeugt oder?
 

TM69

Bekanntes Mitglied
Ersteinmal bitte poste deinen aktuellen Stand, damit wir dir konkret etwas dazu sagen können.
Zum anderen soweit ich dich verstehe, hast du:
Code:
this.vektor = vektor
benutzt. Dieses kopiert keine Daten in ein anderes Array, sondern ist nur eine Zuweisung das Array zu verwenden.
 
K

kneitzel

Gast
Was @TM69 wohl meinte noch einmal etwas ausführlicher:
Vek res = new Vek(vektor);

Dadurch teilen sich der aktuelle Verktor und der neue Vektor das eine Array. Ein Array ist ein Referenz-Typ und daher hast Du in beiden Vektoren die Referenz auf das selbe Array.
Eine Änderung an dem Array ist somit in beiden Vektoren sichtbar.
 

LucaToni

Aktives Mitglied
Ersteinmal bitte poste deinen aktuellen Stand, damit wir dir konkret etwas dazu sagen können.
Zum anderen soweit ich dich verstehe, hast du:
Code:
this.vektor = vektor
benutzt. Dieses kopiert keine Daten in ein anderes Array, sondern ist nur eine Zuweisung das Array zu verwenden.
Java:
public class Vektor
{
    double []vektor;
    int dimension;
    Vektor v2;
    public Vektor(double []vektor)
    {   this.vektor=vektor;
        //dimension=vektor.length;
        
    }
    
    public double componentAt(int i)
    {
        return vektor[i];
    }
    
    public Vektor add(Vektor xyz)
    {   
      Vektor res = new Vektor(vektor);
      
                for(int i=0;i<vektor.length;i++)
                {
                    res.vektor[i]=vektor[i]+xyz.vektor[i];
                }
                System.out.println(res.vektor[0]); //Testausgabe res an der Stelle 0
      return res;
    }
    
  
        
        
    }
Java:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
L Addition von 1 bis n, in Arrays umstellen Java Basics - Anfänger-Themen 15
C Logischer Fehler mit Addition von Arrays Java Basics - Anfänger-Themen 3
I Schriftliche Addition Arrays Java Basics - Anfänger-Themen 2
X Arrays/Addition Java Basics - Anfänger-Themen 18
E Addition von Arrays Java Basics - Anfänger-Themen 4
A Addition mehrdimmensionaler Arrays - Klausurfrage :-( Java Basics - Anfänger-Themen 3
W Addition von Arrays bzw. Vektoren Java Basics - Anfänger-Themen 2
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
J Double Variable und Addition Java Basics - Anfänger-Themen 2
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
E Addition Array Java Basics - Anfänger-Themen 6
M Array Addition Binärzahlen Java Basics - Anfänger-Themen 9
A Binäre Addition Java Basics - Anfänger-Themen 15
M Addition mit hohen Zahlen - Hilfe Java Basics - Anfänger-Themen 5
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
X Compiler-Fehler Possible loss of precision bei addition von int und char Java Basics - Anfänger-Themen 5
T Operatoren Multiplikation nur mit Addition, Subtraktion und Vergleich Java Basics - Anfänger-Themen 29
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
X Addition von Strings Java Basics - Anfänger-Themen 12
R addition von 2 Array Objekten Java Basics - Anfänger-Themen 5
S Multiplikation durch Addition, Subtraktion und Vergleich von Zahlen Java Basics - Anfänger-Themen 14
K Datentypen Kurzform Addition geht, Langform scheitert am Typen Java Basics - Anfänger-Themen 6
A Binäre Addition Java Basics - Anfänger-Themen 5
K char-int-Addition in System.out.print Java Basics - Anfänger-Themen 3
T Matrizzen addition mit zufallszahlen Java Basics - Anfänger-Themen 10
P Addition von 2 Variablen Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
E Addition von char und int als Zeichen ausgeben Java Basics - Anfänger-Themen 11
J Addition zweier Zahlen Java Basics - Anfänger-Themen 9
C Falsches Ergebnis float-Addition Java Basics - Anfänger-Themen 10
X Addition rekursiv ohne Schleife Java Basics - Anfänger-Themen 10
S Problem bei Matrix Addition Java Basics - Anfänger-Themen 5
H Mysteriöse Ausgaben nach Addition Java Basics - Anfänger-Themen 5
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
M Ausgabe einer gerade Zahl nur mit Addition,subtraktion und vergleichsoperatoren! Java Basics - Anfänger-Themen 4
J klasse vektor addition Java Basics - Anfänger-Themen 10
S Anzahl der Überträge bei einer Addition ausgeben Java Basics - Anfänger-Themen 8
S Addition von eigenen Objekten mit "+" Symbol Java Basics - Anfänger-Themen 19
2 Variablenüberlauf bei Addition, Multiplikation Java Basics - Anfänger-Themen 2
A ungenaue addition Java Basics - Anfänger-Themen 2
G Addition von 2 Matrizen Java Basics - Anfänger-Themen 31
J Addition von double values fehlerhaft? Java Basics - Anfänger-Themen 5
H Subtraktion mittels Negierung auf Addition zurückführen Java Basics - Anfänger-Themen 4
V Addition in einem Zweidimensionalenfeld Java Basics - Anfänger-Themen 8
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben