Es gibt zwei JSONArrays mit demselben Format
Eins sind neu hinzugefügte Daten
saveArray: [{"name": "name1", "value":10},{"name": "name2", "value":12},..., {}]
Eins sind die durchschnittlichen Daten
avgArray: [{"name": "name1", "value":11},{"name": "name2", "value":13},..., {}]
Kennen Sie die Zahl, um den Durchschnitt int num = 10;
zu berechnenAktualisieren Sie dann basierend auf den neuen Daten nach der Berechnung des Durchschnitts den vorhandenen Durchschnittsdatensatz:
Endlich habe ich:
newAvgArray: [{"name": "Name 1", "Wert": (10 x 11 + 10)/11}, {"name": "Name 2", "Wert": (13 x 10 + 12) /11},...,{}]
Der einzige Weg, der mir einfällt, ist:
for (int i = 0;i < avgArray.size();i++){
avgObj = avgArray.get(i).get("value");
addValue = saveArray.get(i).get("value");
//然后计算新的值保存新的Array
}
Gibt es eine bessere Möglichkeit, es zu berechnen?
没有了。
算法上来说,这个已经最简化了。O(n)
应该有大神能够用lambda骚气的操作,但就你的要求而言,只能取值重新计算,另外,你要多审题。
不能下面这种操作,要确保name的值能够对应上。