Eine Variable an eine Methode mit Array übergeben

Status
Nicht offen für weitere Antworten.

riaat

Mitglied
Hallo,
ich habe ein Problem bezüglich des Übergebens einer Variable in eine Methode "add()" die sich in einer Klasse "VectorMatrix"befindet.
Die Methode public static double[] add(double[] a, double[] b){...

}
soll die beiden Variablen a und b von einem Objekt vom Typ VectorMatrix testen, a und b sollen dabei die Länge der Arrays darstellen.
Wie kann ich hier den Arrays Werte zuweisen?

Code:
VectorMatrix vector = new VectorMatrix();
          vector.add(????)

Danke schon mal im voraus...[/i]
 
S

SlaterB

Gast
a und b sind selber Arrays oder Längen von Arrays?


wie arbeitet man mit einem Array?

double[] a = new double[100];
a[3] = 15.5;


was ist eigentlich deine Frage?
 
G

Guest

Gast
riaat hat gesagt.:
Hallo,
ich habe ein Problem bezüglich des Übergebens einer Variable in eine Methode "add()" die sich in einer Klasse "VectorMatrix"befindet.

So, das ist der Teil den ich noch verstehe.

riaat hat gesagt.:
Die Methode
Code:
public static double[] add(double[] a, double[] b){...

                                  }

soll die beiden Variablen a und b von einem Objekt vom Typ VectorMatrix testen

Die Methode soll was genau testen? Meinst du mit a und b die Parameter dieser statischen (kommen wir gleich noch zu) Methode? Oder hat dein Objekt vom Typ VectorMatrix auch zwei Variablen, die a und b heißen?

riaat hat gesagt.:
, a und b sollen dabei die Länge der Arrays darstellen.

Code:
double[] a; // <- a ist hier ein Array vom Typ double
int length = a.length; // <- length enthält jetzt die Länge vom Array a

a = new double[10]; // <- Array das 10 double Werte aufnehmen kann
length = a.length; // <- jetzt würde in length 10 stehen

riaat hat gesagt.:
Wie kann ich hier den Arrays Werte zuweisen?

Code:
VectorMatrix vector = new VectorMatrix();
          vector.add(????)

Von welchen Arrays sprichst du denn hier?
Nebenbei hast du add als statische Methode deklariert, da brauchst du gar keine Instanz von VectorMatrix anlegen, die arbeiten eh alle mit der gleichen Methode. Ich weiß nur nicht ob du das echt möchtest!
 

riaat

Mitglied
Ok, ich versuch noch mal meine Situation darzustellen:

Ich habe zwei Klassen. Die 1. heißt VectorMatrix und beinhaltet eine Methode
Code:
public static double[]  add(double[] a, double[] b) { die hier etwas ausführt...}

Jetzt möchte ich aber eine 2. Klasse als Anwendung schreiben, die diese Methode testet, indem sie 2 konstante Werte a und b (Array-Längen) an add() übergibt und das Ergebnis durch die Anwendung ausgegeben wird.
Wie muss nun das Objekt aussehen, damit dies gelingt? Mein Ansatz war:
Code:
VectorMatrix vector = new VectorMatrix();
vector.add([12],[34]);



Ich hoffe etwas Klarheit in die Sachen gebracht zu haben...
 

SamHotte

Top Contributor
So geht das nicht. Wenn die Methode add(..) wie oben deklariert ist, muss man halt zwei double-Arrays übergeben, bspw. so:
Code:
double[] bla = new double[12];
for (int i=0; i<12; i++)
    bla[i] = i;
double[] blubb = new double[34];
for (int i=0; i<34; i++)
    blubb[i] = 100-i;
vector.add(bla, blubb);
 
G

Gast

Gast
Ich glaube du solltest dir dringend noch mal ein paar Grundlagen durchlesen. Sorry, aber ist so!
Also um es noch mal deutlich zu sagen:
Code:
double a = 1.2384742; // ist ein double
double[] b; // ist ein Feld von double, hier noch nicht initialisiert
double[] c = new double[10]; // ist ein Feld, dass 10 double enthält

c[0] = a; // geht, jetzt steht in dem Feld c an der ersten Stelle der Wert von a

a = c[0]; // geht auch, völlig analog

a = c; // geht überhaupt nicht, null
c = a; // "

Und wenn deine Methode statisch ist, dann solltest du nochmal gucken, was genau statische Methoden machen:

Code:
VectorMatrix.add(...); // so sollte der statische Aufruf aussehen, kein new nötig da statisch! (ich glaube immer noch, dass du das gar nicht willst)
 

riaat

Mitglied
In der Tat bin ich dabei mir Java inklusive Grundlagen anzueignen. Hierbei stößt man naturgemäß auf Probleme im Zusammenhang mit Aufgabenstellungen.
Höchst wahrscheinlich fehlt mir die richtige Formulierung für ein relativ kleines Problem.
Deshalb ganz simpel gesagt:
Ich möchte eine kleine Anwendung schreiben, mit der ich einige Fälle testen kann, indem ich hierfür die Methode add() aus dem folgenden Programm benutze:
Code:
public class VectorMatrix {

/** Addition zweier Vektoren. 

 *  Die beiden double-Arrays a und b werden 
 *  elementweise addiert und das Ergebnis als neues
 *  Array geliefert.

 *  Fehlende Elemente des kürzeren oder fehlenden 
 *  Arrays werden als 0.0 angesehen.

 *  Ausnahmen werden nicht ausgelöst. Es wird auf  
 *  jeden Fall ein Ergebnisarray - gegegenenfalls  
 *  eins der Länge 0 - zurückgeliefert. 
 *  @param a Summand
 *  @param b Summand
 *  @return Die Summe
 */  
  public static double[] add(double[]a, double[]b){
     int la = a != null ? a.length : 0;
     int lb = b != null ? b.length : 0;
     if (la == 0 && lb == 0) 
        return a != null ? a : b != null ? b 
                         : new double[0];
     // ab hier hat mindestens eines der Arrays 
     //  mindestens ein Element.

     double[] ret;
     if (lb > la) { // Referenzen tauschen
        ret = a;
        a   = b;    
        b   = ret;
        lb  = la;
     } // Referenzen tauschen
     ret = (double[])a.clone();
     for (int i = 0; i < lb; ++i)
        ret[i] += b[i];
     return ret;  
  } // add(double[], double[]) 

} // class VectorMatrix
 
G

Gast

Gast
Oh, hast du mal C Programmiert? Sorry, nur so mein Stereotypes Denken!
Schön dass du jetzt auch dein Problem schilderst. Damit verstehe ich wieder was du machen möchtest!
Du solltest den ? : Operator meiden. Er ist natürlich erlaubt, er macht Code aber nicht wirklich lesbarer. Schöner ist immer ein if ... else ...
Zudem sollte man auch möglichst elementare Schritte durchführen. Der Compiler ändert intern eh jede Menge, du solltest immer nur für lesbaren Code sorgen (-> besserer Code in jeder Hinsicht, weniger Fehler, Robuster, Wartbarer,...)

Die Signatur deiner Methode ist schon mal gar nicht falsch.
Was du intern machten musst ist auch recht einfach. Als erstes prüfst du ob beide Arrays existieren (!= null) dann schaust du ob sie gleich lang sind. Ist dies nicht der Fall, würde ich eher zur Exception greifen. Ein return null zeigt auch besser, das etwas nicht geklappt hat. Ein leeres Array wirkt (auf mich) so als ob alles geklappt hat (beide Arrays a und b waren halt nur leer).

Code:
public static double[] add(double[] a, double[] b) {
  // prüfen ob beide Arrays vorhanden sind
  if (a == null || b == null) {
    return null; 
  }
  
  // prüfen ob beide Arrays gleich lang sind
  if (a.length != b.length) {
    return null;
  }

  // hier landet man nur, wenn es zwei gleich lange Arrays gibt!
  
  // anlegen des neuen Arrays
  // statt a.length kann auch die gleiche Länge b.length genommen werden
  double result[] = new double[a.length];
  
  // alle Elemente paarweise addieren
  for (int i = 0; i < res.length; i++) {
    result[i] = a[i] + b[i];
  }

  // rückgabe 
  return result;

Das ist alles
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Datentypen Eine Variable von String zu Int ändern Allgemeine Java-Themen 5
S wie übergebe ich eine Variable aus einer Methode an main() ? Allgemeine Java-Themen 16
Zrebna Aus einer jar-Datei eine exe-Datei erzeugen lassen Allgemeine Java-Themen 37
KonradN Mal eine Frage zu Binary Serialization Allgemeine Java-Themen 15
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
dokan wie kann ich eine funktionierende Suchleiste erstellen Allgemeine Java-Themen 1
B Wie erstelle ich dazu eine Abfrage ob der Button gedrückt wurde? Allgemeine Java-Themen 8
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
berserkerdq2 Wenn ich einfach eine GIF in den Scenebuilder als Bild reinpacke, wird das dann asl Gif angezeigt Allgemeine Java-Themen 1
8u3631984 Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ? Allgemeine Java-Themen 2
berserkerdq2 Gibt es eine saubere Dokumentation von Jfoenix? Allgemeine Java-Themen 1
M Eigene Datenstruktur um eine Menge zu speichern Allgemeine Java-Themen 3
A Wie schreibe ich eine For-Schleife in ein Stream API um? Allgemeine Java-Themen 12
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
T Eine Frage des Designs Allgemeine Java-Themen 2
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
H Eine Linie verkürzen Allgemeine Java-Themen 5
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
berserkerdq2 Wie synchronisiere ich eine for-Schleife Allgemeine Java-Themen 12
berserkerdq2 Wie mache ich in IJVM eine if verzweigung? Allgemeine Java-Themen 27
F Gibt es mittlerweile eine Alternative zu DaisyDiff Allgemeine Java-Themen 2
_user_q Was brauche ich, um eine eigene "Search for updates"-Funktion einzubauen? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
pizza_dox_9999 Wie füge ich eine "eigene" ScriptEngine dem ScriptEngineManager? Allgemeine Java-Themen 3
F Kennt ihr eine Library um 2 HTML Seiten zu diffen? Allgemeine Java-Themen 8
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
OnDemand Anzeigen was eine Applikation macht Allgemeine Java-Themen 1
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Eine Frage zu den Threads und Task Allgemeine Java-Themen 1
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
Tobero Wie kann man eine Poisson Disc Sampler? Allgemeine Java-Themen 7
M Openjdk - gibt es auch eine Openjre? Allgemeine Java-Themen 7
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
J Öffnen eine jar-Datei Allgemeine Java-Themen 11
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
S Habt ihr eine Idee wie man Serializierung testen kann..? Allgemeine Java-Themen 6
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Drachenbauer warum bekomme ich hier eine NullPointerException Allgemeine Java-Themen 6
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
N Eine stelle der Fibonacci-Zahlenfolge ausgeben. Allgemeine Java-Themen 4
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
L Methoden Über Reflections eine Methode mit aufrufen Allgemeine Java-Themen 3
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
J Datenstruktur für eine Map erstellen Allgemeine Java-Themen 2
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
I Eine Anwendung so gut wie möglich beschützen Allgemeine Java-Themen 9
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
K OOP Suche Hilfe + Erklärung für eine Hausaufgabe Allgemeine Java-Themen 1
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Login in eine Webseite mit Java Allgemeine Java-Themen 3
A NetBeans Suche Programmierer für eine Belegarbeit Allgemeine Java-Themen 11
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
M Schlüsselworte Was ist eine Java Spezifikation + JSR? Allgemeine Java-Themen 11
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
E RMI FWH: RMI- Wie erstelle ich stubs dynamisch, bzw. unterdrücke eine Statisch-Warnung? Allgemeine Java-Themen 0
J Eine bestimmte Zahl im Integer ändern Allgemeine Java-Themen 9
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
D Möglichkeit mit GAE eine Table auszulesen und eine csv zu schreiben Allgemeine Java-Themen 22
S Korrekte Pfadangaben damit eine .jar Datei unter Windwos läuft. Allgemeine Java-Themen 24
D Eine Forschleife mit Threads abarbeiten um es zu schneller zu machen. Ist das möglich? Allgemeine Java-Themen 20
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
R bei eclipse von java in eine andere programmiersprache wechseln? Allgemeine Java-Themen 2
D Pivot-Wahl beim QuickSort steigert die Effizienz, eine Lüge??? Allgemeine Java-Themen 17
C Eclipse einstellen, dass eine bestimmte JDK benutzt werden soll Allgemeine Java-Themen 3
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
A Best Practice Java - eine Art Plugin-Struktur Allgemeine Java-Themen 3
S wie rufe ich mit .jar datei eine .bat auf? Allgemeine Java-Themen 15
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
E Methoden Hat jemand eine gute Lösung? Allgemeine Java-Themen 5
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
Exdroid BlueJ Wie bekomme ich die Ausgabe in eine TXT Datei? Allgemeine Java-Themen 2
G Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
F Wie kann ich auf einem System prüfen, ob eine lib verfügbar ist? Allgemeine Java-Themen 2
Tausendsassa Interface Eine Gui von einer anderen schließen lassen Allgemeine Java-Themen 3
S Threads Kann mir jemand helfen eine parallele Hilfsklasse zu implementieren..? Allgemeine Java-Themen 3
S Best Practice Brauche eine Idee für eine Java Projekt! Allgemeine Java-Themen 11
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
M Eine Datei im Speicher erneut laden(?) Allgemeine Java-Themen 1
V Gibt es eine Möglichkeit die Internet auslastung mit Java auszulesen Allgemeine Java-Themen 11
L Drop Emails von Outlook in eine JList Allgemeine Java-Themen 5
P Wie funktioniert das Feedback eines Klicks auf eine Java GUI Allgemeine Java-Themen 10

Ähnliche Java Themen


Oben