Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static Map<String, Double> calculateNetBalances(List<Expense> expenses) {
- Map<String, Double> netBalances = new HashMap<>();
- for (Expense expense : expenses) {
- String paidBy = expense.paidBy;
- // Total amount paid by this user (credited)
- double totalAmount = 0;
- for (ExpenseSplit split : expense.splits) {
- totalAmount += split.amount;
- }
- // Credit the payer
- netBalances.put(paidBy, netBalances.getOrDefault(paidBy, 0.0) + totalAmount);
- // Debit each participant
- for (ExpenseSplit split : expense.splits) {
- netBalances.put(split.user, netBalances.getOrDefault(split.user, 0.0) - split.amount);
- }
- }
- return netBalances;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement