假设我有一个列表和一个结果
[
{
"userTaskId": 10,
"counter": 1,
"userName" : "test name one"
},
{
"userTaskId": 10,
"counter": 2,
"userName" : "test name two"
},
{
"userTaskId": 10,
"counter": 3,
"userName" : "test name three"
},
{
"userTaskId": 20,
"counter": 1,
"userName" : "test name"
},
{
"userTaskId": 20,
"counter": 1,
"userName" : "test name four"
},
{
"userTaskId": 20,
"counter": 3,
"userName" : "test name five"
},
]
我会遍历它
List<UserModel> savedUser = userRepository.findAll();
for (UserModel user: savedUser) {
Double number = user.getCounter() * 1000;
/*
* number result will be
* 1000 -> userTaskId: 10
* 2000 -> userTaskId: 10
* 3000 -> userTaskId: 10
* 1000 -> userTaskId: 20
* 1000 -> userTaskId: 20
* 3000 -> userTaskId: 20
*/
}
现在我的问题是如何在总数变为不同的userTaskId之前获得总数。现在我实现了:
Double holder = 0D;
Set<Long> test = new HashSet<>();
Double total = 0D;
List<UserModel> savedUser = userRepository.findAll();
for (UserModel user: savedUser) {
Double number = user.getCounter() * 1000;
Long userTaskId = user.getTaskId();
if (test.contains(limitNo)){
total += number;
} else {
// Save the total value to temporary variable before resetting the total
holder = total;
System.out.println(holder);
total = number;
test.add(userTaskId);
}
/*
* total result will be
* 1000 -> userTaskId: 10
* 3000 -> userTaskId: 10
* 6000 -> userTaskId: 10 (I want to get this value)
* 1000 -> userTaskId: 20
* 2000 -> userTaskId: 20
* 5000 -> userTaskId: 20 (I want to get this value)
*/
}
我想得到值6000 和 5000但是我只得到值:
0.0 and 6000
关于如何仅获得这些值的任何想法?