2013-06-07, 03:18
  #1
Medlem
Jag har en ArrayList av typen HighScore. Den klassen ser ut shr:

Kod:
public class HighScore implements java.io.Serializable, Comparable<HighScore>
{
	private static final long serialVersionUID = -4553553579629963336L;

	public String name, stageName;
	public int time;
	
	@Override
	public int compareTo(HighScore hs) 
	{
		return ((Integer)time).compareTo(hs.time);
	}
}

Jag vill sortera arraylisten efter stageName. I den sorteringen vill jag sortera efter tid.
Type s hr:
Kod:
Name   Stage Name   Time
--------------------------
Peter   StageC      4sec
Johan   StageC      6sec
Adam    StageC      32sec
Ali     StageZ      1sec
Dani    StageZ      7sec 
Citera
2013-06-07, 11:12
  #2
Medlem
preben12s avatar
Om jag frstr dig rtt s jmfr frst stageName med varandra. Om resultatet drifrn r en nolla (det vill sga att dom r lika) s g vidare och jmfr p tid.
__________________
Senast redigerad av preben12 2013-06-07 kl. 11:15.
Citera
2013-06-07, 11:21
  #3
Medlem
Mr.Svenssons avatar
Citat:
Ursprungligen postat av Un-named
Jag har en ArrayList av typen HighScore. Den klassen ser ut shr:

Kod:
public class HighScore implements java.io.Serializable, Comparable<HighScore>
{
	private static final long serialVersionUID = -4553553579629963336L;

	public String name, stageName;
	public int time;
	
	@Override
	public int compareTo(HighScore hs) 
	{
		return ((Integer)time).compareTo(hs.time);
	}
}

Jag vill sortera arraylisten efter stageName. I den sorteringen vill jag sortera efter tid.
Type s hr:
Kod:
Name   Stage Name   Time
--------------------------
Peter   StageC      4sec
Johan   StageC      6sec
Adam    StageC      32sec
Ali     StageZ      1sec
Dani    StageZ      7sec 
Ungefr s hr:
Kod:
	@Override
	public int compareTo(HighScore hs) 
	{
		int stringOrder = this.stageName.compareTo(hs.stageName);
		
		//Dom tillhr samma "stage", jmfr tiden
		if (stringOrder == 0) {
			if (this.time > hs.time) {
				return 1;
			}
			
			if (this.time < hs.time) {
				return -1;
			}
			
			return 0;
		} else {
			return stringOrder;
		}
	}

Det r vrt att tillgga att man aldrig br anvnda sig av publika flt utan av getters/setters istllet.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in