gpt4 book ai didi

java - 带有 arraylist 的 HashMap 并从中创建新的 arraylist

转载 作者:行者123 更新时间:2023-11-30 08:59:51 39 4
gpt4 key购买 nike

我正在尝试清理我的代码并希望在代码中使用优化的方法。

目前我有这种类型的hashmap private HashMap<String, ArrayList<allProperty>> fData;

所以数据每 5 秒从服务器传来一次。我每 5 秒更新一次这个 hashmap,就像这样

       fData.put("Student", allStudent);
fData.put("Emp", allEmp);
fData.put("Other", allOther);

所以从 allproperty 类对象中,有标记字段,我正在尝试为所有键提取标记字段并创建新的整数数组列表,以便我可以每 5 秒在创建的数组列表中附加标记。

我之前为每个学生、emp 和其他学生使用不同的 arraylist,它工作正常,但似乎有很多代码重复。这就是为什么我试图用 HashMap 来实现它

我正在尝试这样的事情,但它没有附加数据......

for (String type: allTypes) {
if(fData.get(type).size() > 0){
arraySort(fData.get(type));
temp = new ArrayList<Integer>();
temp.add(fData.get(type).get(0).marks);
}
cData.put(type, temp);

cType 是下面给出的类型的 hashMap 和

 private HashMap<String, ArrayList<Integer>> cData;

allTypes 在哪里

 signalTypes.add("Student");
signalTypes.add("Emp");
signalTypes.add("Other");

最后,我想要三个带有键的新数组列表,并且能够每 5 秒追加一次数据。谢谢

最佳答案

  1. 获取您的ArrayList

2a。如果它不存在 - 把你的 new ArrayList

2b。否则使用此 ArrayList。它是可变的。所以你可以在这个对象上调用 .add ,它会在 HashMap

中更新

试试这个:

for (String type: allTypes) {
if (fData.get(type).size() > 0) {
arraySort(fData.get(type));
if (cData.get(type) == null) {
temp = new ArrayList<Integer>();
temp.add(fData.get(type).get(0).marks);
cData.put(type, temp);
} else {
cData.get(type).add(fData.get(type).get(0).marks);
}
}
}

关于java - 带有 arraylist 的 HashMap 并从中创建新的 arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27076604/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com