2016-10-18 4 views
0

내가 가지고있는 다음과 같은 속성으로 Utilizador라는 이름의 생성 된 클래스 :다른 목록의 목록에 요소를 추가하는 방법은 무엇입니까?

private String nome; 
private String email; 
private String cidadeAtual; 
private List<String> checkins = new ArrayList<String>(); 
private List<String> amigos = new ArrayList<String>(); 

내 메인 클래스에서 나는 followinf 형식과 Utilizadores의 목록을 가지고 :

내가 할 노력하고있어
Nickname: Daniel | Email: dd | Cidade atual: Maia | Checkins: [Maia] | Amigos: [] 
Nickname: Maria | Email: dd2 | Cidade atual: Porto | Checkins: [Porto] | Amigos: [] 

하나의 이름을 입력 한 다음 다른 이름을 입력하고 우정을 추가하십시오. 예 :

Daniel을 입력하고 Enter 키를 누릅니다. 마리아를 입력하고 Enter를 누릅니다.

Nickname: Daniel | Email: dd | Cidade atual: Maia | Checkins: [Maia] | Amigos: [Maria] 
Nickname: Maria | Email: dd2 | Cidade atual: Porto | Checkins: [Porto] | Amigos: [Daniel] 

그러나 방법은이 같은 목록 아미고 내부 풋 두 이름 개발 : 지금은 서로가 있어야합니다 목록의 아미고은 다음과 같이 이름을

public static void adicionarAmizade() { 
    Scanner cu = new Scanner(System.in); 
    System.out.println("Introduza o nome dos utilizadores!"); 
    System.out.println("\n1º:"); 
    String amigo1 = cu.next(); 
    System.out.println("\n2º:"); 
    String amigo2 = cu.next(); 

    for (Utilizador u : listaUtilizadores) { 
     if ((u.getNome()).equals(amigo1)) { 
      u.getAmigos().add(amigo2); 
      System.out.println("Adicionou"); 
      System.out.println(u.toString()); 
      break; 
     } 
    } 

    for (Utilizador u : listaUtilizadores) { 
     if ((u.getNome()).equals(amigo2)) { 
      u.getAmigos().add(amigo1); 
      System.out.println("Adicionou"); 
      System.out.println(u.toString()); 
      break; 
     } 
    } 
} 
: 여기
Nickname: Daniel | Email: dd | Cidade atual: Maia | Checkins: [Maia] | Amigos: [Maria, Daniel] 
Nickname: Maria| Email: dd2 | Cidade atual: Porto | Checkins: [Porto] | Amigos: [Maria, Daniel] 

이 방법을
+2

는 모두'Utilizador'의'amigos' 목록이 같은 목록 인스턴스 것을 어떤 이유로 수 있습니까? –

+2

그리고 네 말에 더 많은 작업이 필요하다는 것을 알고 있지만 일반적으로 이것은 영어로 말하는 사이트입니다. 소스 코드도 영어로 말할 때 더 나은 답변을 얻을 수있는 기회가 증가합니다. 나를 위해, 지금 상황이 빠져 있습니다. 나는 위에서 언급 한 두리스트와 더 큰 소스 코드가 어떻게 모이는 지 이해하지 못한다. – GhostCat

+0

HashMap에 대해 배우기를 제안합니다. https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html – Sedrick

답변

0

같은 것이 시작입니다.

HashMap<String, String> Amigos = new HashMap<>(); 

//Create Friendship between Marian and Daniel. 
Amigos.put("Maria", "Daniel"); 

//Get Maria's Friend. 
System.out.println(Amigos.get("Maria")) 
+0

이 대답은 유형 안전하지 않습니다 – Phileo99

+0

감사합니다! 그것을 개선하기 위해 답을 편집 할 수있었습니다. – Sedrick

0

개체 접근 방식을 사용할 수도 있습니다.

사람 객체

import java.util.ArrayList; 


public class Person { 
    String name; 
    ArrayList<String> friends = new ArrayList(); 

    Person(String name) 
    { 
     this.name = name; 
    } 

    String getName() 
    { 
     return this.name; 
    } 

    void addFriend(String friendName) 
    { 
     friends.add(friendName); 
    } 

    boolean isFriend(String friendName) 
    { 
     for(String friend : this.friends) 
     { 
      if(friend.equals(friendName)) 
      { 
       return true; 
      } 
     } 
     return false; 
    } 

    String getFriendInPosition(int position) 
    { 
     return this.friends.get(position); 
    } 

    int getFriendPosition(String friendName) 
    { 
     int i = 0; 
     for(String friend : this.friends) 
     { 
      if(friend.equals(friendName)) 
      { 
       return i; 
      } 
      i++; 
     } 
     return -1; 
    } 

    ArrayList<String> getAllFriends() 
    { 
     return this.friends; 
    } 
} 

메인 클래스

public static void main(String[] args) {  

    Person maria = new Person("Maria"); 
    Person daniel = new Person("Daniel"); 

    maria.addFriend(daniel.getName()); 
    daniel.addFriend("Maria");//You could create this to add Person objects as friends 

    maria.addFriend("me");//You could create this to add Person objects as friends 
    maria.addFriend("you");//You could create this to add Person objects as friends 

    System.out.println(maria.getFriendInPosition(0)); 

    System.out.print("Are Maria and Daniel friends? "); 
    System.out.println(maria.isFriend(daniel.getName())); 

    for(String friend : maria.getAllFriends()) 
    { 
     System.out.println("Maria's friend: " + friend); 
    } 

    for(String friend : daniel.getAllFriends()) 
    { 
     System.out.println("Daniel's friend: " + friend); 
    } 
}  
관련 문제