+ 3

[SOLVED]bowling game in java

may somebody tell me why every cases in result tab are true except the last one when I run my code. I wrote two different code one of them I commented below another one https://code.sololearn.com/cR9049D8e8d0/?ref=app

1st Dec 2020, 12:44 PM
hamid
hamid - avatar
3 Answers
- 1
with input "AAA 100\nBBB 200\nCCC 300\n" after Bowling() you get: al: [100, 200, 300] players: {AAA=100, CCC=300, BBB=200} ok but after for() in main() you get: al:[100, 200, 300, 300, 300, 300] al is longer, because the input is "CCC 300" and you add 300 at end of existed al 3x (!) then in getWinner(): if (entry.getValue() == al.get(al.size() -1)) you compare every players.value with 300, all tests are false because you compare Objects and not their values (!) use this instead if (entry.getValue() .equals ( al.get(al.size() -1)) ) { is this answer to your question?
1st Dec 2020, 5:20 PM
zemiak
0
zemiak such a good explanation thanks you so much
1st Dec 2020, 6:43 PM
hamid
hamid - avatar
- 1
I converted the hashmap into two arraylists one for keys and the other one for values. Using the I found out the maximum value among the values and used that to find its corresponding key. https://code.sololearn.com/ca19A17A13a1/#
8th Jan 2021, 7:36 AM
Samritha
Samritha - avatar