比方说,我有两个班级: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;
答案 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))组成。