Aufgabe Arrays in ArrayList

f4814n

Mitglied
Hallo,

ich bin neu hier und freu mich über jeden der mir helfen kann/möchte. Danke schonmal. Das bringt mir sicher ne Menge!

Bereite mich grade auf ein Java Testat vor und brauche Hilfe bei folgender Aufgabe:

Es gibt ein ReferenzArray mit 3 Werten {2,3,1} und eine ArrayList in der int Arrays gespeichert sind zB so:

{1,1,2}
{3,1,2}
{2,3,0}
{2,2,2}

Diese stellen Prozesse dar, die jeweils entsprechende Ressourcen benötigen. Der Ressourcenspeicher ist das Referenzarray {2,3,1}

Jetzt soll ich mittels einer Methode Überprüfen welcher Prozess der erste ist, der ausgeführt werden kann (heißt, dessen Werte alle kleiner oder gleich den Werten im Referenzarray sind. Natürlich auf den entsprechenden Positionen).

Theoretisch würde ich es so machen:

ArrayList durchlaufen mittels forSchleife, dann das dreierarray durchlaufen und jedes element mit dem entsprechenden element des Referenzarrays vergleichen. Mir ist nicht klar was er dann tun soll... Vermutlich ne dumme Frage. Vielleicht ein boolean einführen und ihn so lange vergleichen lasen bis dieser false wird und dann zum nächsten springen? ich hab eine idee kann sie aber mangels programmiererfahrung nicht umsetzen. Vielleicht schafft es jemand mir einen tipp zu geben ohne alles zu verraten. Wäre echt dankebar!!!!

Java:
public class ProcessCheckerImpl implements ProcessChecker {
	
	int[] currentlyAvailableResources;
	
	public ProcessCheckerImpl(int[] currentlyAvailableResources) {
		this.currentlyAvailableResources = currentlyAvailableResources;
	}
	
	public int getExecutableIndex(ArrayList<int[]> processList) {
			
			for (int[] a : processList) {
				for (int i = 0; i < a.length; i++) {
					
					while(a[i]<=currentlyAvailableResources[i]){
						
						//mach so lange weiter bis es nicht mehr erfüllt ist und springe dann zu processList[i+1]
					
						
					}
					
				}
			
		}
		
		
		return -1;
	}


VIELEN DANK: freu mich auf Feedback!
 
Zuletzt bearbeitet von einem Moderator:

f4814n

Mitglied
Sie gibt den Index des Arrays zurück, das "mit den gegebenen Kapazitäten klarkommt".

Was mir nicht klar ist, ist wie man dieses problem löst:

"vergleiche das dreierarray so lange bis es false wird und geh dann weiter" - das kann ich nicht in java übersetzten.

while(a<=currentlyAvailableResources){

was sol er denn machen solange? return true?
}

oder ne dritte for schleife?


VIELEN DANK für die schnelle Antwort!! Ist ja großartiog wie das hier funktioniert :)
 

Timothy Truckle

Top Contributor
was sol er denn machen solange? return true?
Bitte nachdenken, return (egal was danach kommt) verlässt die Methode. kann das hier gewünscht sein?
oder ne dritte for schleife?
nein, Du iterierst ja schon über die 3-erArrays und zwar schon im 2.
Code:
for
...
wer hat denn das
Code:
while
dort eingefügt? Da müsste IMHO eine andere Anweisung stehen.

Also ich würde den Ausdruck im
Code:
while
negieren (ind die andere Anweisung verwenden).
Ich hätte eine Variable vom Typ boolean, die vor dem innern
Code:
for
auf
Code:
true
und an der Stelle des Kommentars (nach den Änderungen am
Code:
while
) auf
Code:
false
gesetzt wird. Wenn diese Variable nach den inneren
Code:
for
immer noch true ist kannst Du die Methode mit dem aktuellen Index des 3-er Arrays verlassen.

Anstelle der Boolenvariable könnte man auch mit einem Label und
Code:
break
arbeiten, dass hat aber ein "Geschmäckle"... Ich rate davon ab, schon deshalb, weil sich dann die innere Schleife nicht mehr in eine eigene Methode auslagern ließe (was man aber tun sollte...)

bye
TT
 

f4814n

Mitglied
Java:
public class ProcessCheckerImpl implements ProcessChecker {

	int[] currentlyAvailableResources;

	public ProcessCheckerImpl(int[] currentlyAvailableResources) {
		this.currentlyAvailableResources = currentlyAvailableResources;
	}

	public int getExecutableIndex(ArrayList<int[]> processList) {
		int zaehler = 0;
		
		for (int[] a : processList) {
			zaehler++;
                        boolean gleich = true;
			for (int j = 0; j < a.length; j++) {

				if (a[j] > currentlyAvailableResources[j]) {

					gleich = false;

				} else

					return zaehler;
			}
		}

		return -1;
	}


die Deklaration der "gleich" Variable ist gelb unterstrichen was ich nicht ganz verstehe.ich glaube es fehlt ein befehl, der ihn weiterschickt zum nächsten processList nachdem gleich auf false gesetzt wurde... Ich hoffe Du/Ihr könnt nachvollziehen was ich mir gedacht habe und vor allem was ich so falsches gedacht habe ;-) Der erste Testfall wird jetzt grün allerdings nur weil da das erste Array direkt passt. Was mich noch interessieren würde: kann man die for each schleife auch in einer "normalen" for-schleife umsetzten? nur für mien Verständnis... DANKE
 

f4814n

Mitglied
Java:
public class ProcessCheckerImpl implements ProcessChecker {

	int[] currentlyAvailableResources;

	public ProcessCheckerImpl(int[] currentlyAvailableResources) {
		this.currentlyAvailableResources = currentlyAvailableResources;
	}

	public int getExecutableIndex(ArrayList<int[]> processList) {
		int zaehler = 0;
		
		for (int[] a : processList) {
			zaehler++;
			boolean gleich = true;
			for (int j = 0; j < a.length; j++) {

				if (a[j] > currentlyAvailableResources[j]) {

					gleich = false;

				} 
			}

				return zaehler;
		}

		return -1;
	}


Was ich aber noch nicht ganz verstehe ist warum
Java:
 boolean gleich = true;
"dead code" sein soll...!?
Werde gleich den nächsten Thread mit einer neuen Aufgabe veröffentlichen. gibt noch viele Fragen. Super Hilfe hier!!!
 
Zuletzt bearbeitet:

pro2

Bekanntes Mitglied
Alle Tests wurden grün!!! Super, vielen Dank für deine Denkanstöße, das war mein Durchbruch ;-)
Was ich aber noch nicht ganz verstehe ist warum
Java:
 boolean gleich = true;
"dead code" sein soll...!?

Na, was machst du denn mit der Variable? Verwendest du sie irgendwo für? Gibst du sie irgendwo aus? Hilft sie einer deiner Schleifen?
 

f4814n

Mitglied
Java:
	public int getExecutableIndex(ArrayList<int[]> processList) {
		int zaehler = 0;

		for (int[] a : processList) {
			zaehler++;

			for (int j = 0; j < a.length; j++) {

				if (a[j] > currentlyAvailableResources[j]) {

				}
			}

			return zaehler;
		}

		return -1;
	}

Es funktioniert tatsächlich auch mit einer leeren if Anweisung... alle tests werden grün. Ist das sauber programmiert?! Auf die Idee, die {}-Klammern leer zu lassen wär ich niemals gekommen...


ES WERDEN NATÜRLICH NICHT ALLE TESTS GRÜN. NACH WIE VOR NUR DER ERSTE!!
 
Zuletzt bearbeitet:

f4814n

Mitglied
Halt!! Falscher Alarm. Ich Idiot. Sorry. Ich hab nur auf den ersten Test getestet deshalb wurde es grün. Aber es funktioniert natürlich nicht. Sorry!!!!

Also, oben ist mein letzter Stand! Und das sind die Testfälle von denen nur der erste durchläuft. Sorry für die Verwirrung ich bin echt unerfahren...

Testfälle
Java:
public class ProcessCheckerTest {
		
	@Test
	public void testExecutable1() {
		int[] curAvailRes = {3,3,2};
		ProcessCheckerImpl pc = new ProcessCheckerImpl(curAvailRes);
		ArrayList<int[]> processList = new ArrayList<int[]>();
		processList.add(new int[]{1,2,3});
		processList.add(new int[]{1,2,0}); // executable
		processList.add(new int[]{3,4,2});
		processList.add(new int[]{1,1,1}); // executable
		int index = pc.getExecutableIndex(processList);
		assertEquals(1, index);
	}
	
	@Test
	public void testExecutable2() {
		int[] curAvailRes = {5};
		ProcessCheckerImpl pc = new ProcessCheckerImpl(curAvailRes);
		ArrayList<int[]> processList = new ArrayList<int[]>();
		processList.add(new int[]{7});
		processList.add(new int[]{6});
		processList.add(new int[]{4}); // executable
		processList.add(new int[]{4}); // executable
		processList.add(new int[]{4}); // executable
		processList.add(new int[]{4}); // executable
		processList.add(new int[]{4}); // executable		
		int index = pc.getExecutableIndex(processList);
		assertEquals(2, index);
	}
	
	@Test
	public void testExecutable3() {
		int[] curAvailRes = {1,1,1,1,1,1,1,1,1,1,1};
		ProcessCheckerImpl pc = new ProcessCheckerImpl(curAvailRes);
		ArrayList<int[]> processList = new ArrayList<int[]>();
		processList.add(new int[]{1,2,1,1,1,1,1,1,1,1,1});
		processList.add(new int[]{1,1,1,1,4,1,1,1,1,1,1});
		processList.add(new int[]{1,1,1,1,1,1,1,1,1,5,1});
		processList.add(new int[]{1,1,1,1,1,1,1,1,1,1,1}); // executable
		int index = pc.getExecutableIndex(processList);
		assertEquals(3, index);
	}
	
	
	@Test
	public void testExecutable4() {
		int[] curAvailRes = {3,3,2,4};
		ProcessCheckerImpl pc = new ProcessCheckerImpl(curAvailRes);
		ArrayList<int[]> processList = new ArrayList<int[]>();
		processList.add(new int[]{3,2,1,0});  // executable
		processList.add(new int[]{3,2,1,0});  // executable
		processList.add(new int[]{3,2,1,0});  // executable
		processList.add(new int[]{3,2,1,0});  // executable
		processList.add(new int[]{3,2,1,0});  // executable
		int index = pc.getExecutableIndex(processList);
		assertEquals(0, index);
	}
	
	@Test
	public void testNotExecutable1() {
		int[] curAvailRes = {7,6,7,6};
		ProcessCheckerImpl pc = new ProcessCheckerImpl(curAvailRes);
		ArrayList<int[]> processList = new ArrayList<int[]>();
		processList.add(new int[]{8,1,1,1}); 
		processList.add(new int[]{1,8,8,8});
		processList.add(new int[]{1,1,1,8}); 
		processList.add(new int[]{6,7,6,7}); 
		processList.add(new int[]{10000,10000,1000,1000}); 
		int index = pc.getExecutableIndex(processList);
		assertEquals(-1, index);
	}	
	
	@Test
	public void testNotExecutable2() {
		int[] curAvailRes = {3,3,2,4};
		ProcessCheckerImpl pc = new ProcessCheckerImpl(curAvailRes);
		ArrayList<int[]> processList = new ArrayList<int[]>();
		processList.add(new int[]{100,2,1,0}); 
		processList.add(new int[]{100,1,1,1}); 
		processList.add(new int[]{100,2,1,0});  
		processList.add(new int[]{3,2,1,100}); 
		processList.add(new int[]{3,2,1,100});  
		int index = pc.getExecutableIndex(processList);
		assertEquals(-1, index);
	}	
	

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Buchstabenzähler-Aufgabe mit Arrays Java Basics - Anfänger-Themen 5
J Aufgabe mit Arrays, Schleifen & Switch/Case Java Basics - Anfänger-Themen 7
B Aufgabe zu Arrays Java Basics - Anfänger-Themen 8
Jere58 Aufgabe zu Mustern Java Basics - Anfänger-Themen 1
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Mikejr Java Berg aufgabe Java Basics - Anfänger-Themen 6
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Neuling47 Ich zerbreche mit den kopf an einer Aufgabe Java Basics - Anfänger-Themen 61
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
T Informatik Studium Aufgabe Java Basics - Anfänger-Themen 4
T Aufgabe Informatik Studium Java Basics - Anfänger-Themen 10
G matrix aufgabe Java Basics - Anfänger-Themen 22
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
9 Aufgabe Bruttorechner Java Basics - Anfänger-Themen 14
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
J boolean aufgabe Java Basics - Anfänger-Themen 9
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
StevenGG Aufgabe im Studium Java Basics - Anfänger-Themen 36
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
S Schulaufgabe - verstehe leider die Aufgabe nicht Java Basics - Anfänger-Themen 4
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
R Eclipse Aufgabe Java Basics - Anfänger-Themen 4
J OOP-Aufgabe Java Basics - Anfänger-Themen 15
Helix19 Informatik Grundkurs (Haus-)Aufgabe Java Basics - Anfänger-Themen 5
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
TimoN11 Java spezielle Suchprobleme - Aufgabe Java Basics - Anfänger-Themen 5
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Rechnungen-Aufgabe Java Basics - Anfänger-Themen 18
C Biene-Aufgabe Java Basics - Anfänger-Themen 2
K Algorithmen und Datenstrukturen Programmier Aufgabe Java Basics - Anfänger-Themen 10
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Aufgabe Flussdiagramm, kann jemand checken? Java Basics - Anfänger-Themen 8
B Methoden Ausgeben Aufgabe Java Basics - Anfänger-Themen 15
M Lösung Aufgabe - Java Programmiren lernen für Dummies Java Basics - Anfänger-Themen 11
J Rekursion Klausur Aufgabe Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
F Aufgabe: Abstand von einem Punkt zu einem anderen Punkt Java Basics - Anfänger-Themen 10
T Aufgabe zum Verschlüsselungsalgorithmus Java Basics - Anfänger-Themen 11
J Erste Schritte Aufgabe Java Basics - Anfänger-Themen 24
T Methoden BinaryTree transformieren Aufgabe Java Basics - Anfänger-Themen 36
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
S Sortieralgorithmus - Aufgabe mit Lösungsidee Java Basics - Anfänger-Themen 20
A Aufgabe: Gleitkommazahlen Java Basics - Anfänger-Themen 3
A Java-Programmierungs Aufgabe Java Basics - Anfänger-Themen 2
U Aufgabe zu Kontrollstrukturen Java Basics - Anfänger-Themen 8
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
J Aufgabe als Feuertaufe Java Basics - Anfänger-Themen 8
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
H aufgabe 4 Java Basics - Anfänger-Themen 297
M Hilfe bei Projektorientierungs-Aufgabe !! Java Basics - Anfänger-Themen 3
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
H java aufgabe Java Basics - Anfänger-Themen 7
E Mathematische Aufgabe: Antwort entspricht nicht der Lösung Java Basics - Anfänger-Themen 5
H was verlangt die aufgabe ? Java Basics - Anfänger-Themen 10
H java aufgabe Java Basics - Anfänger-Themen 68
H java aufgabe Java Basics - Anfänger-Themen 25
H aufgabe java luhn algorithmus Java Basics - Anfänger-Themen 10
R Java Aufgabe (Teilbarkeit) Java Basics - Anfänger-Themen 7
H java aufgabe Java Basics - Anfänger-Themen 44
H java aufgabe Java Basics - Anfänger-Themen 7
H java string aufgabe Java Basics - Anfänger-Themen 10
H array aufgabe Java Basics - Anfänger-Themen 13
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
H aufgabe Java Basics - Anfänger-Themen 9
H lösung aufgabe Java Basics - Anfänger-Themen 12
S Hilfe für Aufgabe Java Basics - Anfänger-Themen 4
H java online aufgabe Java Basics - Anfänger-Themen 4
H Array aufgabe Java Basics - Anfänger-Themen 7
H oop aufgabe probe kalusur Java Basics - Anfänger-Themen 11
H oop aufgabe Java Basics - Anfänger-Themen 19
H JAVA AUFGABE Java Basics - Anfänger-Themen 7
W Thread Aufgabe - Vorgehensweise Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben