gpt4 book ai didi

java - Arraylist不添加java

转载 作者:行者123 更新时间:2023-12-02 03:25:51 26 4
gpt4 key购买 nike

我正在做一个简单的sch程序来添加 friend ,即将对象添加到数组列表中。我遵循了一切,但我的方法 befriend() 似乎不起作用。当我在 main 中使用 .add() 手动测试时,它有效。我哪里做错了?

import java.util.*;
public class NetworkFriends {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here



Person me = new Person("Aloysius", 1);

ArrayList<Person> myList = new ArrayList<Person>(Arrays.asList(me.getFriendList()));

Person p1 = new Person("Gorgon", 2);
Person p2 = new Person("Eddy", 3);

me.befriend(p1);

for(Person i : myList) {
System.out.println("Name: " + i.getName());
}
}
}

class Person
{
private int id;
private String name;
private ArrayList<Person> friendList;
private static int runningNum = 0;
private static int friendsLimit = 5;
private String degree;
private int degreeNum;

/* Constructor - 1 param */
public Person(String name, int degreeNum)
{
//Implement your code here..
//Initialize all necessary variable(s)
this.name = name;
friendList = new ArrayList<Person>(5);
this.degree = degree;
this.degreeNum = degreeNum;
}

public void befriend(Person p){
//Implement your code here..

ArrayList<Person> anotherList = new ArrayList<Person>(Arrays.asList(p.getFriendList()));

for(Person i : friendList) {
if(!isFriend(this) && friendList.size() < 5) {
friendList.add(p);
anotherList.add(this);
}
else if(!isFriend(this) && friendList.size() == 5) {
System.out.println("Friends limit reached");
}

else {
System.out.println("Already in friend list");
}
}

}
}

public boolean isFriend(Person p){
//Implement your code here..

boolean isItAFriend = true;
for(Person i : friendList) {
if(friendList.contains(p)) {
isItAFriend = true;
}
else {
isItAFriend = false;
}
}
return isItAFriend;

}

最佳答案

问题出在您的 befriend 方法中的 foreach 循环上。您正在使用构造函数创建一个新的 Person,该构造函数创建一个初始大小为 5 的空好友列表,但仍然是空的。

在您的 befriend 方法中,您将循环查找此空列表中的每个 friend 。因此循环内的代码将不会被执行,并且好友永远不会添加到列表中。

我怀疑你想做这样的事情:(因为这看起来像家庭作业,我只会给你伪代码)

  1. 此人已经是 friend 了吗
    • 是 - 无需执行任何操作或提供反馈和返回
    • 否 - 继续
  2. 他们是否已达到好友上限
    • 是 - 显示反馈并返回
    • 否 - 继续
  3. 添加好友

关于java - Arraylist不添加java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38908510/

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