how to check if i used a .method()

import java.util.List;
import java.util.ArrayList;

public class SpieleweltKlasse {
public static void main(String[] args) {
List<CharakterKlasse> gildenMitglieder = new ArrayList<>();
gildenMitglieder.add(new Magier("Gandalf", 22));
gildenMitglieder.add(new Krieger("Goblin Slayer", 23));
gildenMitglieder.add(new CharakterKlasse("Bilbo",14));

System.out.println(gildenMitglieder.size());
System.out.println(gildenMitglieder.toString());

System.out.println(gildenMitglieder.toString());
gildenMitglieder.remove(0); // remove Gandalf
System.out.println(gildenMitglieder.toString());

gildenMitglieder.remove(1); // remove Bilbo
System.out.println(gildenMitglieder.toString());

gildenMitglieder.remove(0); // remove Goblin Slayer
System.out.println(gildenMitglieder.toString());
}
static void (int member) {
}
}
import java.util.List;
import java.util.ArrayList;

public class SpieleweltKlasse {
public static void main(String[] args) {
List<CharakterKlasse> gildenMitglieder = new ArrayList<>();
gildenMitglieder.add(new Magier("Gandalf", 22));
gildenMitglieder.add(new Krieger("Goblin Slayer", 23));
gildenMitglieder.add(new CharakterKlasse("Bilbo",14));

System.out.println(gildenMitglieder.size());
System.out.println(gildenMitglieder.toString());

System.out.println(gildenMitglieder.toString());
gildenMitglieder.remove(0); // remove Gandalf
System.out.println(gildenMitglieder.toString());

gildenMitglieder.remove(1); // remove Bilbo
System.out.println(gildenMitglieder.toString());

gildenMitglieder.remove(0); // remove Goblin Slayer
System.out.println(gildenMitglieder.toString());
}
static void (int member) {
}
}
i thought of something like:
if (gildenMitglied.remove()) {
System.out.printf("--- %d members are contributing to the guild. ---%n", gildenMitglieder.size());
System.out.println(gildenMitglieder.toString());
System.out.printf("%n%s has left the guild.%n", gildenMitglieder[member].toString());
}
if (gildenMitglied.remove()) {
System.out.printf("--- %d members are contributing to the guild. ---%n", gildenMitglieder.size());
System.out.println(gildenMitglieder.toString());
System.out.printf("%n%s has left the guild.%n", gildenMitglieder[member].toString());
}
i want the consol output to be something like this.
--- 2 members are contributing to the guild. ---
[Krieger "Goblin Slayer", CharakterKlasse "Bilbo"]

Gandalf has left the guild.
--- 2 members are contributing to the guild. ---
[Krieger "Goblin Slayer", CharakterKlasse "Bilbo"]

Gandalf has left the guild.
but i encounted following problems: - i dont know how to direct to a single Array of the List (f.e. to direct to "Goblin Slayer") - how to check whether i used .remove(), .add(), etc. do you have any ideas / solutions?
11 Replies
JavaBot
JavaBot4w ago
This post has been reserved for your question.
Hey @Darknesslion5|Christian! Please use /close or the Close Post button above when your problem is solved. Please remember to follow the help guidelines. This post will be automatically marked as dormant after 300 minutes of inactivity.
TIP: Narrow down your issue to simple and precise questions to maximize the chance that others will reply in here.
Darknesslion5|Christian
one thing i thought of was, creating new methods, like
static void memberRemover (int charSelector) {
gildenMitglieder.remove(charSelector);
System.out.printf("--- %d members are contributing to the guild. ---%n", gildenMitglieder.size());
System.out.println(gildenMitglieder.toString());

//but still would be stuck here
System.out.printf("%n%s has left the guild.%n", gildenMitglieder[member].toString());
}
static void memberRemover (int charSelector) {
gildenMitglieder.remove(charSelector);
System.out.printf("--- %d members are contributing to the guild. ---%n", gildenMitglieder.size());
System.out.println(gildenMitglieder.toString());

//but still would be stuck here
System.out.printf("%n%s has left the guild.%n", gildenMitglieder[member].toString());
}
Madjosz
Madjosz4w ago
You can wrap the guild member list into a class and override the methods. E.g.
public class GildenMitglieder extends ArrayList<CharakterKlasse> {
@Override
public CharakterKlasse remove(int index) {
var mitglied = super.remove(index);
System.out.printf("Gelöscht: %s\n%d Mitglieder übrig.\n", mitglied, size());
return mitglied;
}
}
public class GildenMitglieder extends ArrayList<CharakterKlasse> {
@Override
public CharakterKlasse remove(int index) {
var mitglied = super.remove(index);
System.out.printf("Gelöscht: %s\n%d Mitglieder übrig.\n", mitglied, size());
return mitglied;
}
}
Darknesslion5|Christian
ok but the task aims towards creating multiple guilds/groups/collections therefore ArrayList and letting them do some actions together as a union and some individual tasks. Like if you had 150 individual objects that you want to structure together. i think this would be bothersome to recreate for each guild or am i wrong?
Madjosz
Madjosz4w ago
You are doing this once for all guilds. Then you use this class everywhere where a guild is created.
Darknesslion5|Christian
ok ok i think i got it thanks
JavaBot
JavaBot4w ago
If you are finished with your post, please close it. If you are not, please ignore this message. Note that you will not be able to send further messages here after this post have been closed but you will be able to create new posts.
Madjosz
Madjosz4w ago
But it really depends what you actually want to acheive. Adding logging into every method call can be very noisy. So maybe it is better to not log in the class but actually at the callsite when specific actions are taken.
Darknesslion5|Christian
at the callsite? what do you mean with that
Madjosz
Madjosz4w ago
Where you call the remove() method.
JavaBot
JavaBot4w ago
Post Closed
This post has been closed by <@245536392308981760>.

Did you find this page helpful?