gpt4 book ai didi

java - 在 Java 中进行等价处理

转载 作者:行者123 更新时间:2023-12-02 08:52:49 26 4
gpt4 key购买 nike

正如您可能从我的代码中看到的那样,我对此很陌生。我正在尝试编写一个简单的程序来检索一个人的 friend 。这是我的代码:

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());
}
}

一切正常,但我不知道如何创建一个方法:如果吉娜同时是达纳和约翰的 friend ,那么显然吉娜的 friend 将是达纳和约翰。我知道我可以在 gina.addFriend(dana)gina.addFriend(john) 处添加两行,以达到相同的结果,但我想知道什么该方法是为此目的吗?提前致谢。

最佳答案

首先,制作 friends一个ArrayList<Friend> .

private ArrayList<Friend> friends;

这有几个优点,包括更易于使用和存储 Person是他们自己,而不仅仅是他们的名字。

然后,更改 addFriend双向方法:

public void addFriend(Person friend) {
friends.add(friend);
friend.friends.add(this);
}

这样,友谊就会自动来回。您还应该更改 unfriend :

public void unFriend(Person friend) {
friends.remove(friend);
friend.friends.remove(this);
}

编辑:根据上面的评论,一组实际上会更好,因为它只能有每个值之一。

关于java - 在 Java 中进行等价处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35576676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com