Jump to content
  • 0

Hashmap Error


L2shaken

Question

http://imgur.com/a/KJwdY

protected int getVoteWinner()
	{
		int old = 0;
		HashMap<Integer, Integer> temp = new HashMap<>();
		
		for (int vote : votes.values())
		{
			if (!temp.containsKey(vote))
				temp.put(vote, 1);
			else
			{
				old = temp.get(vote);
				old++;
				temp.getEntry(vote).setValue(old);
			}
		}
		
		int max = temp.head().getNext().getValue();
		int result = temp.head().getNext().getKey();
		
		for (Map.Entry<Integer, Integer> entry : temp.entrySet())
		{
			if (entry.getValue() > max)
			{
				max = entry.getValue();
				result = entry.getKey();
			}
		}
		
		votes.clear();
		temp = null;
		return result;
	}

How do I solve this problem? Use aCis 350, replaces FastMap with HashMap and is giving this error.

Edited by L2shaken
Link to comment
Share on other sites

Recommended Posts

  • 0

No more love for javolution :D

 

I, tbh, got no clue what is Javolution in the end (realtime library, that's it), because L2J didn't use more than 5% of the complete library features. They simply replaced here and there few Lists/Maps/StringBuilder which could be simple ArrayList/HashMap for 70% of them, and for leftover be handled by concurrent (which has been reworked and got decent performance overall). And I personally prefer to rely on JDK features only.

 

In this topic, a concurrent or whatever linked type list is pointless, it can be achieved with better performance with simple container. There is no need to hit the head of the map, it's a result based method, so you begin at 0.

 

I was the first to drop Javolution, so it's more appropriate to say : I never liked it. :P

 

Trove had a better impact than Javolution for sure, notably because we use A LOT of Integer containers. But I tbh find it a pain in the ass to remember you have that library, not even 50% of Integer containers were managed by that lib, so you got inconsistent writting style over the whole pack => drop.

Edited by Tryskell
Link to comment
Share on other sites

  • 0

I don't understand what you want, but this looks like better:

	protected int getVoteWinner()
	{
		final HashMap<Integer, Integer> temp = new HashMap<>();
		for (int vote : votes.values())
		{
			if (!temp.containsKey(vote))
				temp.put(vote, 1);
			
			int old = temp.get(vote);
			temp.getEntry(vote).setValue(++old);
		}
		
		int max = 0;
		int result = 0;
		
		for (Map.Entry<Integer, Integer> entry : temp.entrySet())
		{
			if (entry.getValue() > max)
			{
				max = entry.getValue();
				result = entry.getKey();
			}
		}
		
		return result;
	}
Edited by Rootware
Link to comment
Share on other sites

  • 0

Because your knowledge so sucks. You try to calling from a map the value as object, not like the variable.

	protected int getVoteWinner()
	{
		final HashMap<Integer, Integer> temp = new HashMap<>();
		for (int vote : votes.values())
		{
			if (!temp.containsKey(vote))
				temp.put(vote, 1);
			
			int old = temp.get(vote);
			temp.put(vote, ++old); // If a record with this "vode" exists in Map then she will be rewrited with new value from "old" variable.
		}
		
		int max = 0;
		int result = 0;
		
		for (Map.Entry<Integer, Integer> entry : temp.entrySet())
		{
			if (entry.getValue() > max)
			{
				max = entry.getValue();
				result = entry.getKey();
			}
		}
		
		return result;
	}
Link to comment
Share on other sites

  • 0

http://imgur.com/a/koUCR

Yes, but I still have this photo error.

I'm sorry i know i'm offtopic, why you even bother open a server? I guess you got a free pack since you are do it on your own, your knowledge is 0 and you go for a live server.

 

SweeTs please post a gif for me.

Link to comment
Share on other sites

  • 0

I'm sorry i know i'm offtopic, why you even bother open a server? I guess you got a free pack since you are do it on your own, your knowledge is 0 and you go for a live server.

 

SweeTs please post a gif for me.

no gif for u 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...