Hallo, ich habe bei einer Aufgabe ein kleines Problem mit Arrays. Ich musste in einer Methode den min und max Wert eines Arrays suchen und diesen durch die Zahlen min = -100 ( an der Position des Arrays) und max = 100.
In einer anderen Methode soll ich zwei Arrays miteinander verbinden und sie ausgeben, was wunderbar geklappt hat. Mein Problem ist aber, dass die Arrays die falschen Werte, nämlich die abgeänderten, besitzen. Ich soll jedoch wieder die Arrays mit den Ausgangswerten verbinden.
Der Code sieht vorerst so aus:
Die Ausgabe des Codes sieht so aus:
[17, 3, 15, 21, 100, 12, -100, 8, 25, 29]
[17, 3, 15, 21, 100, 12, -100, 8, 25, 29, 24, -100, 16, 12, 100, 13]
Die Ausgabe soll jedoch so aussehen:
[17, 3, 15, 21, 100, 12, -100, 8, 25, 29]
[17, 3, 15, 21, 34, 12, 1, 8, 25, 29, 24, 11, 16, 12, 35, 13]
Ich habe schätz ich mal noch nicht ganz verstanden, wie Arrays funktionieren, kann mir jemand erklären, was ich da falsch mache bzw. nicht beachtet habe?
liebe Grüße
_________________________________________________________________________________________________
EDIT: Ich habe das Problem mit dem Anlegen eines lokalen Arrays in der Methode gelöst!!
Eine weitere Frage zu dem Thema bezüglich min-max Werte suchen:
Wenn in einem Array mehrere min oder max-Werte sind und ich aber nur den Wert an der ersten Stelle verändern möchte, wie gehe ich das am Besten an?
In einer anderen Methode soll ich zwei Arrays miteinander verbinden und sie ausgeben, was wunderbar geklappt hat. Mein Problem ist aber, dass die Arrays die falschen Werte, nämlich die abgeänderten, besitzen. Ich soll jedoch wieder die Arrays mit den Ausgangswerten verbinden.
Der Code sieht vorerst so aus:
Java:
// Methode, die die min und max Werte sucht und verändert
private static void replaceMaxMinValue(int[] workArray) {
int maxNum = workArray[0];
int minNum = workArray[0];
for (int i = 0; i < workArray.length; i++) {
if (workArray[i] > maxNum) {
maxNum = workArray[i];
}
if (workArray[i] < minNum) {
minNum = workArray[i];
}
}
for (int i = 0; i < workArray.length; i++) {
if (workArray[i] == minNum) {
workArray[i] = -100;
}
if (workArray[i] == maxNum) {
workArray[i] = 100;
}
}
}
// Methode, die 2 Arrays verbindet
private static int[] combineArrays(int[] workArray1, int[] workArray2) {
int length = workArray1.length + workArray2.length;
int[] combinedArray = new int[length];
int pos = 0;
for (int i : workArray1) {
combinedArray[pos] = i;
pos++;
}
for (int i : workArray2) {
combinedArray[pos] = i;
pos++;
}
return combinedArray;
}
public static void main(String[] args) {
int[] array2 = new int[]{17, 3, 15, 21, 34, 12, 1, 8, 25, 29};
replaceMaxMinValue(array2);
System.out.println(Arrays.toString(array2));
int[] array3 = new int[]{24, 11, 16, 12, 35, 13};
replaceMaxMinValue(array3);
System.out.println(Arrays.toString(array3));
int[] array10 = combineArrays(array2, array3);
System.out.println(Arrays.toString(array10));
}
}
Die Ausgabe des Codes sieht so aus:
[17, 3, 15, 21, 100, 12, -100, 8, 25, 29]
[17, 3, 15, 21, 100, 12, -100, 8, 25, 29, 24, -100, 16, 12, 100, 13]
Die Ausgabe soll jedoch so aussehen:
[17, 3, 15, 21, 100, 12, -100, 8, 25, 29]
[17, 3, 15, 21, 34, 12, 1, 8, 25, 29, 24, 11, 16, 12, 35, 13]
Ich habe schätz ich mal noch nicht ganz verstanden, wie Arrays funktionieren, kann mir jemand erklären, was ich da falsch mache bzw. nicht beachtet habe?
liebe Grüße
_________________________________________________________________________________________________
EDIT: Ich habe das Problem mit dem Anlegen eines lokalen Arrays in der Methode gelöst!!
Eine weitere Frage zu dem Thema bezüglich min-max Werte suchen:
Wenn in einem Array mehrere min oder max-Werte sind und ich aber nur den Wert an der ersten Stelle verändern möchte, wie gehe ich das am Besten an?
Zuletzt bearbeitet: