Spring boot 我的JEE代码没有';“不要对待”这个词;如果;集团即使如此';这是真的

Spring boot 我的JEE代码没有';“不要对待”这个词;如果;集团即使如此';这是真的,spring-boot,jakarta-ee,Spring Boot,Jakarta Ee,我正在尝试创建一个Hashmap的ArrayList,稍后将使用它。 我正在做的是从前面得到一个名为的数组列表,名为groups,另一个名为types 到目前为止,我能够在一个名为typeGroup的ArrayList中得到每个类型及其对应的组,我得到了这个结果typeGroup:[{traitement=FC},{traitement=FP},{traitement=FE},{information=ZD},{information=ZX},{information=ZY},{informat

我正在尝试创建一个Hashmap的ArrayList,稍后将使用它。 我正在做的是从前面得到一个名为
的数组列表,名为groups,另一个名为types

到目前为止,我能够在一个名为
typeGroup的
ArrayList
中得到每个类型及其对应的组,我得到了这个结果
typeGroup:[{traitement=FC},{traitement=FP},{traitement=FE},{information=ZD},{information=ZX},{information=ZY},{information=ZZ},{report=FP},{report=FD},{report=JD},{ddm=FD},{ddm=FT},{ddm=JD}]

我现在想要的是将它们映射到一个名为newMap
ArrayList
中,但是这次每种类型都有其相应的组,我得到了这个结果
newMap:[{information=ZD,ZX,ZY,ZZ},{report=FP,FD,JD},{ddm=FD,FT,JD}]

我的问题是它没有得到它应该给我这个结果的所有对象
newMap:[{traitement=FC,FP,FE},{information=ZD,ZX,ZY,ZZ},{raptop=FP,FD,JD},{ddm=FD,FT,JD}]

这是我的密码:

HashMap<String, Integer> countmap = new HashMap<>();
ArrayList<HashMap<String, String>> typeGroup = new ArrayList<>();
ArrayList<HashMap<String, String>> newMap = new ArrayList<>();
Set<String> ty = new HashSet<>(types);
ArrayList<String> arr = new ArrayList<>(ty);

   for (int i = 0; i < arr.size(); i++) {
        int count = 0;
        for (int j = 0; j < types.size(); j++) {
            if (arr.get(i).equals(types.get(j))) {
                count++;}
        }
        countmap.put(arr.get(i), count);
    }

    System.out.println("arr :"+arr);
    System.out.println("countmap  : " + countmap);

    for (int i = 0; i < types.size(); i++) {
        HashMap<String, String> TG = new HashMap<>();
        TG.put(types.get(i), groups.get(i));
        typeGroup.add(TG);
    }

    System.out.println("typegroup  : " + typeGroup);

    boolean test = false;
    for (int i = 1; i < typeGroup.size()- 1 ; i++) {
        String key = "";
        System.out.println((typeGroup.get(i).keySet()).equals(typeGroup.get(i + 1).keySet()));
        if ((typeGroup.get(i).keySet()).equals(typeGroup.get(i + 1).keySet())) {
            if ((newMap.contains(key))) {
                for (String str : typeGroup.get(i).keySet()) {
                    key = str;
                }
                HashMap<String, String> op = new HashMap<>();
                String val = "";
                for (int t1 = 0; t1 < countmap.get(key); t1++) {
                    if (val == "") {
                        val = typeGroup.get(i).get(key);
                    } else {
                        val = val + "," + typeGroup.get(i+t1).get(key)+"%";
                    }
                    op.put(key, val);
                }
                newMap.add(op);
                if (test == false) {
                    i++;
                }
                test = false;
                System.out.println("++++++++");
            }

        } else {
            test = true;
            for (String str : typeGroup.get(i + 1).keySet()) {
                key = str;
            }
            HashMap<String, String> op = new HashMap<>();
            String val = "";
            for (int t = 0; t < countmap.get(key); t++) {
                if (val == "") {
                    val = typeGroup.get(i + 1).get(key);
                } else {
                    val = val + "," + typeGroup.get(i + 1 + t).get(key);
                }
                op.put(key, val);
            }
            System.out.println("op :" +op);
            newMap.add(op);
            i++;
        }
    }

    System.out.println("countmap  : " + countmap);
    System.out.println("typeGroup : " + typeGroup);
    System.out.println("newMap    : " + newMap);

由于条件“if((newMap.contains(key))”,代码跳过第一个组的键-在第一次迭代时,键是
“”
。请注意,在Java中,
列表中第一项的索引是
0
——代码中的
for
循环以1开头,但这是一个错误。如果问题的模型更好,代码会更简单。
Hashmap
不是将两个字符串存储在一起的好结构。为什么不使用e一个简单的类?第二个类用于一个键和多个值的情况?代码跳过第一个组的键,因为条件“if((newMap.contains(key))”—在第一次迭代时,键是
“”
。请注意,在Java中,
列表中第一项的索引是
0
——代码中的
for
循环以1开头,但这是一个错误。如果问题的模型更好,代码会更简单。
Hashmap
不是将两个字符串存储在一起的好结构。为什么不使用这是一个简单的类吗?第二个类用于一个键和多个值的情况?
types     : [traitement, traitement, traitement, information, information, information, information, rapport, rapport, rapport, ddm, ddm, ddm]
groups    : [FC, FP, FE, ZD, ZX, ZY, ZZ, FP, FD, JD, FD, FT, JD]
arr :[traitement, rapport, ddm, information]
countmap  : {traitement=3, rapport=3, information=4, ddm=3}
typegroup  : [{traitement=FC}, {traitement=FP}, {traitement=FE}, {information=ZD}, {information=ZX}, {information=ZY}, {information=ZZ}, {rapport=FP}, {rapport=FD}, {rapport=JD}, {ddm=FD}, {ddm=FT}, {ddm=JD}]
true
false
op :{information=ZD,ZX,ZY,ZZ}
true
true
false
op :{rapport=FP,FD,JD}
true
false
op :{ddm=FD,FT,JD}
true
countmap  : {traitement=3, rapport=3, information=4, ddm=3}
typeGroup : [{traitement=FC}, {traitement=FP}, {traitement=FE}, {information=ZD}, {information=ZX}, {information=ZY}, {information=ZZ}, {rapport=FP}, {rapport=FD}, {rapport=JD}, {ddm=FD}, {ddm=FT}, {ddm=JD}]
newMap    : [{information=ZD,ZX,ZY,ZZ}, {rapport=FP,FD,JD}, {ddm=FD,FT,JD}]