Jump to content
  • 0

Fastlist -> Arraylist Acis


L2shaken

Question

http://imgur.com/a/1oYgm

protected int getWinnerTeam()
	{
		ArrayList<EventTeam> t = new ArrayList<>();
		
		for (EventTeam team : teams.values())
		{
			if (t.size() == 0)
			{
				t.add(team);
				continue;
			}
			
			if (team.getScore() > t.getFirst().getScore())
			{
				t.clear();
				t.add(team);
				continue;
			}
			
			if (team.getScore() == t.getFirst().getScore())
				t.add(team);
		}
		
		if (t.size() > 1)
			return 0;
		
		return t.getFirst().getId();
	}

getFirst () must be replaced by what?

Edited by L2shaken
Link to comment
Share on other sites

Recommended Posts

  • 0
return t.get(0).getId();
	protected int getWinnerTeam()
	{
		ArrayList<EventTeam> t = new ArrayList<>();
		
		for (EventTeam team : teams.values())
		{
			if (t.size() == 0)
			{
				t.add(team);
				continue;
			}
			
			if (team.getScore() > t.get(0).getScore())
			{
				t.clear();
				t.add(team);
				continue;
			}
			
			if (team.getScore() == t.get(0).getScore())
				t.add(team);
		}
		
		if (t.size() > 1)
			return 0;
		
		return t.get(0).getId();
	}

right ?

Link to comment
Share on other sites

  • 0

Right. But i would suggest you to take a look on the other posts and reconsider your course of action. This algorithm is very suboptimal, you should try to recode it or at least understand why.

Link to comment
Share on other sites

  • 0

This community keeps going worse and worse, damn it.  :lol:

seriously,i reported him.
 
He has getScore() and compareTo(EventTeam second) but he wants to create a new sh1tcode, use unnecessary ArrayList and after that,he wants to ...
He doesnt use anything properly ...
Just report them or get 2 condoms for ur eyes 
Edited by bravetobe
Link to comment
Share on other sites

  • 0

You say "he use" / "he wants".. No, he don't want to. How can he, if he can't do it / don't understand it. He is simply using some ready, old code.

 

Stop the drama. Like Versus said, it's a request help section, after all.

Link to comment
Share on other sites

  • 0

You say "he use" / "he wants".. No, he don't want to. How can he, if he can't do it / don't understand it. He is simply using some ready, old code.

 

Stop the drama. Like Versus said, it's a request help section, after all.

Old code?I cant really believe that someone coded that thing and he actually decided to get that code and actually use it...

 

Besides,i dont want to see 1 more "BALANCED" server around + 1 more nazi admin in his own stupid forum who bans people Kappa.Also,me + one other dude told him 2 different ways to code that decently.

 

No haterino,make spaghettirino,plz make me cappucino

Link to comment
Share on other sites

  • 0

I cant really believe that [...] he actually decided to get that code and actually use it...

As if he had other choice :lol:

 

No one wants.. :P

Link to comment
Share on other sites

  • 0

Old code?I cant really believe that someone coded that thing and he actually decided to get that code and actually use it...

 

Besides,i dont want to see 1 more "BALANCED" server around + 1 more nazi admin in his own stupid forum who bans people Kappa.Also,me + one other dude told him 2 different ways to code that decently.

 

No haterino,make spaghettirino,plz make me cappucino

You're just jealous cause he is PRO jeva davaloper. HI MEIK PRO CODES 2K16

Link to comment
Share on other sites

  • 0

Sad story. This man don't want to know the purpose of the code, but he asking for help in correcting the methods while they was written in the FastMap style. Also it's was not the better solution for this, and not ArrayList story.

 

I think this man will not be satisfed if we recommened him learn what this code doing. In this case, is not the help. It's work of other people - time, brains and hands.

 

My opinion - wrong section for request.

Edited by Rootware
Link to comment
Share on other sites

  • 0

What would be the right way?

public int compareTo(EventTeam second)
	{
		if (getScore() > second.getScore())
			return 1;
		else if (getScore() < second.getScore())
			return -1;
		
		return 0;
	}

protected int getScore()
	{
		return score;
	}

protected int getId()
    {
        return id;
    }
    

There is code already which u can use instead of code something that u saw in ur sleep or something

 

Since i dont code things in l2j,i will try to make it as simple as i can tho (what i would do):

If its supposed to be more than X teams (x >>2):

Track down the team with the highest score.Since i dont know what kind of collection is this,dunno whats more efficient(dunno the methods but it looks like hashmap or what...arraylist fanboy).

Copy the team with the highest score into an object,and later on get the id.That might be the most easy way.

OR 

set highestScore=0 id =0,compare score that each team's score and if it has higher score than that,save the id and after the loop return it.

If its supposed to be with 2 teams:

Just get their scores and return the id.

 

Thats my prespective.No coding in l2j tho Kappa

 

- Editted several times to clarify how u can actually code it-

gl

 

P.S thats w/o 2 team same score.if 2 teams have same score,it becomes more tricky.

Edited by bravetobe
Link to comment
Share on other sites

  • 0
public int compareTo(EventTeam second)
	{
		if (getScore() > second.getScore())
			return 1;
		else if (getScore() < second.getScore())
			return -1;
		
		return 0;
	}

protected int getScore()
	{
		return score;
	}

protected int getId()
    {
        return id;
    }
    

There is code already which u can use instead of code something that u saw in ur sleep or something

 

Since i dont code things in l2j,i will try to make it as simple as i can tho (what i would do):

If its supposed to be more than X teams (x >>2):

Track down the team with the highest score.Since i dont know what kind of collection is this,dunno whats more efficient(dunno the methods but it looks like hashmap or what...arraylist fanboy).

Copy the team with the highest score into an object,and later on get the id.That might be the most easy way.

OR 

set highestScore=0 id =0,compare score that each team's score and if it has higher score than that,save the id and after the loop return it.

If its supposed to be with 2 teams:

Just get their scores and return the id.

 

Thats my prespective.No coding in l2j tho Kappa

 

- Editted several times to clarify how u can actually code it-

gl

 

P.S thats w/o 2 team same score.if 2 teams have same score,it becomes more tricky.

 

What you mean more tricky ?

 

If team 1 and team 2 has same score it will return 0 anyway 

Link to comment
Share on other sites

  • 0
protected int getWinnerTeam()
{
	final EventTeam team = teams.values().stream().sorted(Comparator.comparing(EventTeam::getScore).reversed()).findFirst().orElse(null);
	return team == null ? 0 : team.getId();
}

Exact same broken getWinnerTeam logic to java.

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...