我正在尝试清理代码,并希望在代码中使用优化的approches。
目前我有这种类型的hashmap
private HashMap<String, ArrayList<allProperty>> fData;
所以数据每5秒从服务器发出一次。我每隔5秒更新一次这个hashmap就像这样
fData.put("Student", allStudent);
fData.put("Emp", allEmp);
fData.put("Other", allOther);
所以从allproperty类对象中,有标记字段,我试图为所有键提取该标记字段并创建整数的新arraylist,这样我就可以每隔5秒在创建的arraylist中附加标记。
我之前为每个学生,emp和其他人使用了不同的arraylist,它工作正常,但似乎很多代码的重复。这就是我试图用哈希映射
实现它的原因我正在尝试这样的东西,但它没有附加数据......
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");
最后我想要三个带键的新arraylist并且能够每5秒追加一次数据。感谢
答案 0 :(得分:2)
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);
}
}
}