Hallo,
also ich weiß das man setters und getters public macht, und class variables private.
also ich dachte jedenfalls das ich es verstanden habe bis ich ein praktisches beispiel hatte.
undzwar programmiere ich gerade schiffeversenken.
ich denke bis jetzt drüfte noch alles richtig sein.
Bevor ich weiterschreibe sollte ich vielleicht noch sagen das location 3 strings beinhaltet
zb A0 A1 A2
Das input ist die benutzereingabe zb A0. JEtzt habe ich mir überlegt wie ich den String in location löschen kann, wenn er mit der benutzer eingabe übereinstimmt. buffer ist ein "remote control" (so stand es jedenfalls im buch) für die location arraylist.
[strike]Irgentwie fühlt es sicht aber nicht richtig an und ich bekomme auch immer einen runtime error.
sieht vielleicht irgentwer einen fatalen fehler in diesem codeschnipsel ?[/strike]
zeile 14 ist
for (String count : ship.getLocation()) {
also ich weiß das man setters und getters public macht, und class variables private.
also ich dachte jedenfalls das ich es verstanden habe bis ich ein praktisches beispiel hatte.
undzwar programmiere ich gerade schiffeversenken.
Java:
public class Ships {
private String name;
private ArrayList<String> location = new ArrayList<String>();
public ArrayList<String> getLocation() {
return location;
}
public void setLocation(ArrayList<String> n) {
location = n;
}
Bevor ich weiterschreibe sollte ich vielleicht noch sagen das location 3 strings beinhaltet
zb A0 A1 A2
Das input ist die benutzereingabe zb A0. JEtzt habe ich mir überlegt wie ich den String in location löschen kann, wenn er mit der benutzer eingabe übereinstimmt. buffer ist ein "remote control" (so stand es jedenfalls im buch) für die location arraylist.
[strike]Irgentwie fühlt es sicht aber nicht richtig an und ich bekomme auch immer einen runtime error.
sieht vielleicht irgentwer einen fatalen fehler in diesem codeschnipsel ?[/strike]
Java:
public String gameCheck(Ships ship, String input) {
String result = "miss";
ArrayList<String> buffer = ship.getLocation();
for (String count : ship.getLocation()) {
if (count.equalsIgnoreCase(input)) {
result = "Hit";
buffer.remove(buffer.indexOf(count));
if (buffer.size() == 0) {
result = "Kill - GameOver";
break;
}
}
}
Java:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at Game.gameCheck(Game.java:14)
at Game.gameStart(Game.java:41)
at Game.main(Game.java:53)
for (String count : ship.getLocation()) {
Zuletzt bearbeitet: