Предположим, у меня есть список и результат
[
{
"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"
},
]
, и я пройду через него oop
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
*/
}
Теперь мой вопрос: как мне получить * 1007? * число всего , прежде чем оно изменится на 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
Любая идея о том, как я могу получить только эти значения?