2016-08-11 4 views
-3

Я пытаюсь создать программу friendlist на Java. Однако я должен одновременно добавить пользователя (объект) в список двух массивов.Friendlist Program Java

Есть ли способ сделать это? Мой текущий код такой же, но он не кажется правильным.

/* Add this particular person (person in the parameter list) to your friendList 
    * Add yourself to this particular person's friendList as well 
    * 
    * If either you or person-to-be-added's friendList is full (already have 5 friends), 
    *   - print "Friends limit reached." 
    *   - Both parties will not add each other. 
    * NOTE: Your total number of friends cannot exceed 5 (friendsLimit) 
    */ 


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

      for(Person i : friendList) { 
       if(!i.equals(p) && friendList.size() < 5) { 
        friendList.add(p); 
       } 
       else 
        if(!i.equals(p) && friendList.size() >= 5) { 
         System.out.println("Friends limit reached."); 
        } 
        else { 
         System.out.println("Friend already exist in list"); 
        } 
      } 

} 
+2

Я голосую за то, чтобы закрыть этот вопрос не по теме, потому что op не проявил никаких усилий вообще –

+0

Вы хотите, чтобы более удобный способ добавить человека p в ваш «список друзей»? –

+1

Время поговорить с [ducky] (https://en.wikipedia.org/wiki/Rubber_duck_debugging) ... Если friend 0 = AAA, 1 = BBB, что происходит, когда вы пытаетесь добавить BBB? – John3136

ответ

0

Мне просто интересно, это намеренное, что вы проверить, если человек, чтобы добавить уже присутствует в список друзей, потому что он не упоминается в комментарии метода. В предположении, что у вас есть доступ к списку друзьям другому человека в, в некотором роде, и методе Подружиться является методом личности:

  1. Вам не придется перебирать все Лицо в вашем списке друзей, чтобы обеспечить что ни ваш, ни друг друга не находятся на полную мощность. Просто проверьте границы и, если недостаточно места, напечатайте сообщение и вызовите return; внутри предложения if.
  2. Если метод befriend() имеет Person.befriend() то вам просто нужно добавить friendList.add(p) и p.getFriendList().add(this)
  3. Если вам нужно сделать убедитесь, что вы не добавляете кого-то в два раза, то вы можете проверить это в цикле. Но поскольку ваш класс Person имеет метод equals() и, возможно, hashCode(), вы можете использовать метод Java Collection friendList.contains(p) (в случае, если friendList имеет тип ArrayList, например). Метод collection.contains() "[...] возвращает true тогда и только тогда, когда этот список содержит хотя бы один элемент e такой, что (o == null? E == null: o.equals (e)).", см. List.html#contains(java.lang.Object)

Надеюсь, это поможет.

+0

Он, безусловно, делает, спасибо. – Aloysius