Java中类之间的所有者关系

时间:2019-04-02 09:13:30

标签: java arraylist

比方说,我有两个班级:User和Dog。 它们被分类在两个不同的ArrayLists中。 userArrayList和dogArrayList。 当我要列出所有用户时,我也想打印他们拥有的狗。例如:

Command>列出用户

User1 [DogX,DogY]

User2 []

在这种情况下,用户1拥有两只狗,而用户2不拥有任何一只狗。

如何在两个类之间实现这种“所有者”关系?

这是我现在的列表用户方法:

public void listUsers() {
        if (userArrayList.isEmpty()) {
            System.out.println("Error: no users in register");
        } else {
            for (User user : userArrayList) {
                System.out.println(user.getName());
            }
        }
    }

这就是我试图显示这种关系的方式,但是我不知道如何将列表与User实例连接起来。

boolean upForAuction = false;
        Set<String> set = new HashSet<>(auctions);
        for (int i = 0; i < auctions.size(); i++) {
            if (dName.equalsIgnoreCase(auctions.get(i))) {
                System.out.print("The auction is closed. The winning bid 
was ");
                System.out.println(bidArrayList.get(i).toString());
                List<String> ownedDogs = o.getOwnedDogs();
                ownedDogs.add(dName);
                upForAuction = true;

1 个答案:

答案 0 :(得分:0)

您可以使用类似的东西

class User {
private String userName;
private List<Dog> dogList;

public User(){}
public User(String name){
userName=name;
}

public void setDogLis(List<Dog list){
doglist=list;
}
public void setUserName(String name){
username=name;}

public List<Dog> getDogList(){
return dogList;}

public String getUserName(){
return userName;
}
}

class Dog {
private String dogName;

public Dog(){}
public Dog(String name){
dogName=name;
}

public void setDogName(String name){
dogName=name;}

public String getDogName(){
return dogName;
}
}

class Auction {
Dog dog1=new Dog("dog1");
Dog dog2=new Dog("dog2");
Dog dog3=new Dog("dog3");
Dog dog4=new Dog("dog4");

User user1=new User("user1");
User user2=new User("user2");

List<Dog> dogList1=new ArrayList(2);
doglist1.add(dog1);
doglist1.add(dog2);

List<Dog> dogList2=new ArrayList(2);
doglist1.add(dog3);
doglist1.add(dog4);

user1.setDogList(dogList1);
user2.setDogList(dogList2);

  }

现在,您有2位用户和2条狗

此外,您只能拥有Map<String, List<Dog>>,该用户名可以由该映射的userName作为字符串(如KEY)和listDog(作为列表(如VALUE))组成。