Как вы, вероятно, увидите из моего кода, я новичок в этом. Я пытаюсь написать простую программу для извлечения друзей одного человека. Вот мой код:Выполнение эквивалентности в Java
public class Person {
private String name;
private String friends;
public Person(String aName) {
name = aName;
friends = "";
}
public String getFriends() {
return friends;
}
public void addFriend(Person friend) {
friends = friends + " " + friend.name;
}
public void unfriend(Person nonFriend) {
friends = friends.replace(" " + nonFriend.name, "");
}
public static void main(String[] args) {
Person dana = new Person("Dana");
Person gina = new Person("Gina");
Person john = new Person("John");
dana.addFriend(gina);
dana.addFriend(john);
john.addFriend(gina);
john.addFriend(dana);
john.unfriend(dana);
System.out.println("Dana's friends are: " + dana.getFriends());
System.out.println("Gina's friends are: " + gina.getFriends());
System.out.println("John's friends are: " + john.getFriends());
}
}
Все работает, но я не знаю, как создать метод, который будет говорить: Если Джин и друг Джона Дано, а затем четко друзья Джина будут Даны и Джон. Я знаю, что я могу добавить две строки там gina.addFriend(dana)
и gina.addFriend(john)
, чтобы добиться того же результата, но я хотел бы знать, для чего будет этот метод. Заранее спасибо.
Вы не должны использовать строки для «друзей», но в списке. – Stultuske
Знаете ли вы о разных структурах данных? –
Прежде всего: сохраните список друзей как «Список», а не как конкатенированную строку. (Или, поскольку один человек должен появляться только один раз, 'Set'.) Следующим шагом является то, что' a.addFriend (b); 'должен изменять наборы друзей как' a', так и 'b', а также с недружественными , – biziclop