Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将对象列表转换为地图_Java - Fatal编程技术网

Java 将对象列表转换为地图

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 谢谢请在谷歌番石榴库

我有两个属性{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

谢谢

请在谷歌番石榴库中尝试多地图

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);
    }