Il existe deux JSONArrays avec le même format
L'une concerne les données nouvellement ajoutées
saveArray : [{"name":"name1","value":10},{"name":"name2","value":12},...,{}]
L'une est la donnée moyenne
avgArray : [{"name":"name1","value":11},{"name":"name2","value":13},...,{}]
Connaître le nombre pour calculer la moyenne int num = 10 ;
Ensuite, sur la base des nouvelles données, après avoir calculé la moyenne, mettez à jour l'enregistrement de moyenne existant :
Enfin obtenu :
newAvgArray : [{"name": "nom 1", "valeur": (10 x 11 + 10)/11}, {"name": "nom 2", "valeur": (13 x 10 + 12) /11},...,{}]
La seule façon à laquelle je peux penser est :
for (int i = 0;i < avgArray.size();i++){
avgObj = avgArray.get(i).get("value");
addValue = saveArray.get(i).get("value");
//然后计算新的值保存新的Array
}
Existe-t-il une meilleure façon de calculer
Pas plus.
Algorithmiquement parlant, c'est le plus simplifié. O(n)
Il devrait y avoir un maître capable d'utiliser lambda pour effectuer l'opération arrogante, mais en ce qui concerne vos besoins, vous ne pouvez que prendre la valeur et la recalculer. De plus, vous devez revoir davantage les questions.
Vous ne pouvez pas effectuer les opérations suivantes. Assurez-vous que la valeur du nom peut correspondre.