java求助 如何关联两个arraylist

我有两个class ,
一个是keeper 一个是animal
由于一个keeper 可以有多个动物

keeper里面有method:
public void addAnimalDuty(Animals anAnimal) {

if (!mAnimalsDuties.contains(anAnimal)) {

mAnimalsDuties.add(anAnimal);

现在希望输入keeper的id 就可以查找他的名字和所有的动物
怎么做?

keeper 有id,name等intant fields 也有各种get和set

第1个回答  2013-09-25
把keeper的ID和keeper对象存成一个map,如Map<Integer, Keeper> map,就可以实现了。
public void getKeeperNameAndHisAnimals(Map<Integer, Keeper> map, Integer keeperId) {
Keeper keeper = map.get(keeperId);
System.out.println(keeper.name);
for(Animal animal : keeper.getmAnimalsDuties()) {
System.out.println("animalId:" + animal.getId() + ",animalName:" + animal.getName());
}
}
第2个回答  2013-09-25
先初始化animal然后装到list里面最后获取keeper实例,对list做一个循环通过keeper的ip在list中查找animal
第3个回答  2013-09-25
我给你说个思路:
1,把不同的动物放到一个HansMap里,然后再塞进arraylist里去。
2,通过循环迭代arraylist,通过你给的id去循环判断是否存在你要找的动物(id肯定是hansMap的kek)。希望楼主采纳,呵呵。
第4个回答  2013-09-25
在keeper里面加入一个animals_list,在里面加入持有的animalid,这样可以通过animalid,去所有的hashmap<animalid,animal>里面去找,类似于连表查询一样。
第5个回答  2013-09-25
这里是连接两个数组的代码。。。你也可以在ArrayList里连接!!
int[] intArray = { 1, 2, 3, 4, 5 };

int[] intArray2 = { 6, 7, 8, 9, 10 };

// Apache Commons Lang library

int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);本回答被网友采纳
相似回答