У меня есть два класса:
public class AClass{
String name;
int id;
int total;
}
public class BClass{
String batchName;
int id;
}
Теперь у меня есть два списка:
List<AClass> aLst;
List<BClass> bLst;
Между этими двумя списками мне нужно проверить, если AClass.id==BClass.id
.
Одним из способов достижения этого является наличие двух для циклов и сравнение. Но это не эффективный способ.
Другой способ - использование HashMap
. Пройдите по списку BClass
и используйте BClass.id
в качестве ключа, а соответствующий объект в качестве значения:
Map<int,BClass> map = new HashMap<int,BClass>();
List requiredLst <BClass> = new ArrayList<BClass>();
foreach(BClass b : bLst){
map.put(BClass.id, b);
}
foreach(AClass a : aLst){
BClass b = map.get(a.id);
requiredLst.add(b);
}
Это эффективный способ сравнения?