Int-Array im Konstruktor Parameter

Garrus

Mitglied
Hallo,
ich bin derzeit mit einer Aufgabe beschäftigt, die so lautet:

Schreiben Sie ein Java-Programm MyThread.java, das die Summe aller Zahlen eines vorgegebenen int-Arrays mit Hilfe von zwei Threads berechnet. Dazu wird das Array jeweils zur Hälfte auf die beiden Threads verteilt. Jeder Thread berechnet seinen Bereich für sich. Nach Beendigung der Threads soll das Hauptprogramm die Ergebnisse aus dem Objekt lesen, die Summe berechnen und das Ergebnis ausgeben.

Mein derzeitiger Stand:
Code:
//Bis "a1.start()" war es vorgegeben!

public class MyThread {
    public static void main(String[] args) {
        int[] a={1,2,3,4,5,6,7,8,9,10};
           ArrayCalc a1 = new ArrayCalc(a,0,6);
           ArrayCalc a2 = new ArrayCalc(a,7,9);

           a1.start();
           a2.start();
           
           try {
                a1.join();
                a2.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
          System.out.println("Summe: "+(a1.getSumme()+a2.getSumme()));
       
    }
}

Erstellen Sie eine Klasse ArrayCalc (ArrayCalc.java), die die Berechnung für einen Teil des Arrays übernimmt!

Mein bisheriger Teil:
Ich habe gerade einfach das Problem, dass ich nicht weiß, wie ich diesen Int-Array im Konstruktor so übergebe, damit der vorgegebene Code "new ArrayCalc(a,0,6)" funktioniert.

Code:
public class ArrayCalc extends Thread {
    int[] a = {1,2,3,4,5,6,7,8,9,10};
   
        public ArrayCalc(int a[]) {
            this.a = a;
        }
     public void run() {
                   
    }

    public int getSumme(int result) {
        result = 0;
        for(int i : a) {
            result += i;
        }
        return result;
    }
}
 

mrBrown

Super-Moderator
Mitarbeiter
Was möchtest du machen: Soll die Klasse ArrayCalc zum aktuellen Aufruf des Konstruktors passen, oder soll der Aufruf zum aktuellen Konstruktor passen?
 

DrZoidberg

Top Contributor
Die Summe sollte in der run() Methode berechnet werden, nicht in getSumme(). Und es sollten auch nur die Zahlen im angegebenen Bereich addiert werden.
 

Garrus

Mitglied
@mrBrown, der Konstruktor in der Klasse ArrayCalc soll so passen, dass er mit dem Aufruf in der Klasse MyThread auch erzeugt werden kann.
@DrZoidberg, das kommt noch, ich hatte mir erstmal die erforderliche Methode getSumme mit der Rechnung gemacht.
 

Garrus

Mitglied
Ich interpretiere es so, dass a1 aus dem Array a die Zahlen von der Stelle 0-6 und a2 die Stellen 7-9 erhalten sollen, um damit ihre Summierung zu machen!? Denn sonst kann ich mir den Inhalt selbst nicht erklären.
 

mrBrown

Super-Moderator
Mitarbeiter
Ja, das stimmt.
Und wie muss dann der Konstruktor aussehen, damit der die drei Argumente übergeben bekommen kann?
 

Garrus

Mitglied
Genau das weiß ich nicht ganz. Ich kann ja nicht einfach:

Code:
public ArrayCalc(int a, int b, int c) {
this.a = a;
...
}

oder

Code:
public ArrayCalc(int[] a, int[] b, int[] c) {
this.a = a;
...
}


machen, oder? Wie kann der sich denn dann die Zahlen passend aus dem Array ziehen, denn im Endeffekt sind es ja mehr als drei Werte bei dem a1.
 

mrBrown

Super-Moderator
Mitarbeiter
Du musst dir im Konstruktor keine Zahlen aus dem Array ziehen.

Wessen Typ haben denn die drei übergebenen Argumente?
 

Garrus

Mitglied
Das war nicht vorgegeben, wenn du das meinst.
Und sicher bin ich mir da auch nicht, wie ich es machen soll. Ich weiß halt nicht wie ich die im Aufruf übergebenden Argumente "a,0,6" und "a,7,9" gescheit im Konstruktor definiere.
 

Garrus

Mitglied
Logisch wäre ein int[] und zwei int, aber das ist quatsch, da die 0 und 6 doch nur die Werte-Position in dem array a angibt und doch kein eigenen Typ hat, oder doch?
 

Garrus

Mitglied
Aber wenn der Konstruktor nur
Code:
public ArrayCalc(int a[], int i, int j) {...}
zur Verfügung stellt, wie kann ArrayCalc a1 im Endeffekt die Werte {1,2,3,4,5,6} annehmen? Dann muss ich dem Objekt doch irgendwie klar machen, was es mit den zwei einzelnen ints 0 und 6 auf sich hat?
 

mrBrown

Super-Moderator
Mitarbeiter
Unabhängig von welchen beiden Objekten?


Beschreib mal in deinen ganz eigenen Worten unabhängig von irgendeiner Programmiersprache, wie du die Werte 3-5 aus [0,4,3,2,1,5] zusammen rechnest?
 

Garrus

Mitglied
Läuft es darauf hinaus so etwas zu machen?
Code:
public void run(int result) {
        result = a[0];
        for (int i = 1; i < 6; i++) {
            result =+ a[i];
        }
        return;
    }
 

mrBrown

Super-Moderator
Mitarbeiter
Ja, das geht in die richtige Richtung, nur die 1 und die 6 passen noch nicht so ganz ;)
Aber warum bekommt deine Methode einen int übergeben und warum setzt du result zu Anfang auf den ersten Wert des Arrays?
 

Garrus

Mitglied
result habe ich der Stelle im int a array gegeben, damit der einen Anfangspunkt hat.
Habe den Rest jetzt etwas angepasst, aber immer noch weis ich nicht, wie ich von der run Methode variablen nach getSumme übergeben kann.

Code:
public class ArrayCalc extends Thread {
 
    int[] a;
    int r, s, summe;
    int result;
  
    public ArrayCalc(){}
    public ArrayCalc(int a[], int r, int s) {
            this.a = a;
            this.r = r;
            this.s = s;
        }
  
    public void run() {
      
        result= a[0] ;
        for (int i = r; i < s; i++) {
            result=+ a[i];
        }
    }
  
    public int getSumme() {
  
        } 
}
 

mrBrown

Super-Moderator
Mitarbeiter
result habe ich der Stelle im int a array gegeben, damit der einen Anfangspunkt hat.
Dann wird result aber immer zusätzlich der erste Wert im Array dazu addiert. Wenn man also von 2 bis 3 berechnen will, kommt in deiner Funktion [0]+[2] raus, statt [2]+[3].
Gibt es nicht vielleicht einen anderen sinnvollen Startwert für eine Addition?

Habe den Rest jetzt etwas angepasst, aber immer noch weis ich nicht, wie ich von der run Methode variablen nach getSumme übergeben kann.
Warum musst du getSumme was übergeben? In getSumme hast du doch Zugriff auf alle Instanzvariablen ;)
 

mrBrown

Super-Moderator
Mitarbeiter
Der Start deiner Schleife war schon richtig, nur das Ende passt noch nicht.
Deine Schleife läuft aktuell so lange, wie i kleiner als s ist, der Wert a[s] sollte aber auch noch dazu addiert werden ;)[/s]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
M Objekt Array an konstruktor übergeben und Initialisieren Java Basics - Anfänger-Themen 1
S Object Array Length via Konstruktor Java Basics - Anfänger-Themen 5
B Array soll an Konstruktor übergeben werden..Hilfe! Java Basics - Anfänger-Themen 16
J Array new Konstruktor Java Basics - Anfänger-Themen 10
S Array Konstruktor Java Basics - Anfänger-Themen 2
M Array Ausgabe, Konstruktor Java Basics - Anfänger-Themen 2
X Array im Konstruktor wie ausgeben? Java Basics - Anfänger-Themen 2
J Datentypen Array - Verwendung im Konstruktor Java Basics - Anfänger-Themen 8
S Array im Konstruktor kopieren Java Basics - Anfänger-Themen 8
K globales array - größe im Konstruktor Java Basics - Anfänger-Themen 3
H array im konstruktor Java Basics - Anfänger-Themen 8
G Array an Konstruktor übergeben Java Basics - Anfänger-Themen 2
D String array im konstruktor --> wie gibt man elemente an? Java Basics - Anfänger-Themen 2
S dynamisches array + konstruktor Java Basics - Anfänger-Themen 5
A Array,Konstruktor und 3 Widerstande Java Basics - Anfänger-Themen 23
G Array-Größe in Konstruktor bestimmen Java Basics - Anfänger-Themen 7
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
A Elemente in einem Array Java Basics - Anfänger-Themen 5
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
AhmadSlack Array Java Basics - Anfänger-Themen 7
Jambolo Kartenhand Array Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben