Java 将对象列表转换为地图
我有两个属性{alpha,beta}的对象列表,如下所示:Java 将对象列表转换为地图,java,Java,我有两个属性{alpha,beta}的对象列表,如下所示: obj1 = {alpha1,beta1} obj2 = {alpha2,beta2} obj3 = {alpha3,beta3} obj3 = {alpha1,beta2} obj5 = {alpha3,beta1} 我想创建一个映射,例如map 因此,它将如下所示: alpha1 --> beta1,beta2 alpha2 --> beta2 alpha3 --> beta3,beta1 谢谢请在谷歌番石榴库
obj1 = {alpha1,beta1}
obj2 = {alpha2,beta2}
obj3 = {alpha3,beta3}
obj3 = {alpha1,beta2}
obj5 = {alpha3,beta1}
我想创建一个映射,例如map
因此,它将如下所示:
alpha1 --> beta1,beta2
alpha2 --> beta2
alpha3 --> beta3,beta1
谢谢请在谷歌番石榴库中尝试多地图
Map Map=new HashMap();
Map<alphaKey, List<beta>> map = new HashMap<alphaKey, List<beta>>();
for (int i = 0; i < objList.size(); i++) {
boolean isContain = map.containsKey(objList.get(i).getAlphaKey());
if (isContain)
map.get(objList.get(i).getAlphaKey())
.add(objList.get(i).getBeta());
else {
List<beta> betaList = new ArrayList<beta>();
betaList.add(objList.get(i).getBeta());
map.put(objList.get(i).getAlphaKey(), betaList);
}
}
对于(int i=0;i
公共类ObjectAB{
αa;
βb;
//吸气剂和构造剂
}
ObjectAB[]objArray=新的ObjectAB[5];
//向其添加obj1、obj2。
Map map1=新的HashMap();
for(ObjectAB ObjectAB:objArray){
Alpha a=objectAB.getA();
List bList=new ArrayList();
if(地图1.集装箱(a)){
bList=map1.get(a);
}
添加(objectAB.getB());
map1.put(a,bList);
}
你被困在什么地方了吗?我认为最好的办法是使用一种方法,将obj参数引入,并检查地图中是否存在该键。如果它存在,它会在子列表中添加值,否则它会装箱一个新的键/列表
public class ObjectAB {
Alpha a;
Beta b;
// Gettters and constructuor
}
ObjectAB[] objArray = new ObjectAB[5];
// add obj1, obj2 to it.
Map<Alpha, List<Beta>> map1 = new HashMap<>();
for (ObjectAB objectAB : objArray) {
Alpha a = objectAB.getA();
List<Beta> bList = new ArrayList<>();
if (map1.containsKey(a)) {
bList = map1.get(a);
}
bList.add(objectAB.getB());
map1.put(a, bList);
}