2014-01-06 19 views
0

我有一个足球联盟的记分牌。 我想排名每一个团队。 要做到这一点,我想比较每个比赛与每个团队,并将结果放入矩阵。用Java构建应急表

这是最好的收藏这样做?我尝试了ArrayList,但我很失望!

记分牌的例子:

TEAM1| SCORE | TEAM2 | SCORE 
AAAA | 20 | BBBB | 10 
AAAA | 12 | CCCC | 14 
BBBB | 1 | AAAA | 2 

我想建立一个矩阵像这样的,太:任何帮助吗?任何形式?任何提示将帮助!

 AAAA  BBBB  CCCC 
AAAA 0   abs(2-1) 0  
BBBB abs(20-10) 0   0 
CCCC abs(12-14) 0   0 

我忘了说,我有一个类记分牌 与变量

String name1,name2; 
double score1,score2; 
+5

不伤'ArrayList'的感情。它是如何使你失望的? PS:使用'class'来分组数据。 –

+0

使用自定义比较器对您的列表(或其他集合)进行排序? –

+0

@JeroenVannevel我忘了说我已经读过一堂课。 –

回答

1

使用的类和比较这一点。

public class ScoreBoard implements Comparator<ScoreBoard>{ 
    String team1, team2; 
    double team1_score, team2_score; 

    @Override 
    public int compare(ScoreBoard s1, ScoreBoard s2) { 
    //Sort anyway you wish in here 
    return Math.abs(s1.team1_score - s1.team2_score) - Math.abs(s2.team1_score - s2.team2_score); 
    } 

    public void createAndSort() { 
    List<ScoreBoard> boards = new LinkedList<ScoreBoard>(); 
    //... 
    //boards.add(....); 
    Collections.sort(boards, this); 
    } 
} 

用法,填写ScoreBoard列表并将它们存储在列表中。至于你矩阵中,我不知道我明白你的

我想建立这样一个矩阵的意思......

0

我创建了一个程序问题,乌尔运行和评论(给点建议请)

我的程序

import java.util.*; 
class Matches 
{ 
static LinkedList MatchesList = new LinkedList(); 
public void addMatches(ScoreBoard SBtemp) 
{ 
    MatchesList.add(SBtemp); 
    } 
public LinkedList getMatches() 
{ 
return MatchesList; 
} 
} 
class ScoreBoard 
{ 
ScoreBoard(String name1,String name2,Double score1,Double score2) 
{ 
    Matches addmat=new Matches(); 
    this.name1=name1; 
    this.name2=name2; 
    this.score1=score1; 
    this.score2=score2; 
    this.diff=Math.abs(this.score1-this.score2); 
    addmat.addMatches(this); 
} 

String name1,name2; 
Double score1,score2,diff; 
} 
public class Mycode{ 
public static void main(String []args){ 
    ScoreBoard SB1=new ScoreBoard("AAAA","BBBB",20.0,10.0); 
    ScoreBoard SB2=new ScoreBoard("AAAA","CCCC",12.0,14.0); 
    ScoreBoard SB3=new ScoreBoard("BBBB","AAAA",1.0,2.0); 
    //default value for matrix 
    Double Matrix[][]=new Double[3][3]; 
    for(int n=0;n<3;n++) 
    for(int m=0;m<3;m++) 
    Matrix[m][n]=0.0; 
Matches dismat=new Matches(); 
LinkedList MatchesList = new LinkedList(); 
MatchesList=dismat.getMatches(); 
     //create matrix 
int m=0,n=0; 
      for(Iterator i = MatchesList.iterator();i.hasNext();) 
    { 
    ScoreBoard SBtemp2 = (ScoreBoard)i.next(); 

    if(SBtemp2.name1.equals("AAAA")) 
    { 
     m=0; 
     if(SBtemp2.name2.equals("BBBB")) 
     { 
      n=1; 
      Matrix[m][n]=SBtemp2.diff; 
     } 
     else if(SBtemp2.name2.equals("CCCC")) 
     { 
     n=2; 
      Matrix[m][n]=SBtemp2.diff; 
     } 
    } 

    if(SBtemp2.name1.equals("BBBB")) 
    { 
     m=1; 
     if(SBtemp2.name2.equals("AAAA")) 
     { 
      n=0; 
      Matrix[m][n]=SBtemp2.diff; 
     } 
     else if(SBtemp2.name2.equals("CCCC")) 
     { 
     n=2; 
      Matrix[m][n]=SBtemp2.diff; 
     } 
    } 

    if(SBtemp2.name1.equals("CCCC")) 
    { 
     m=2; 
     if(SBtemp2.name2.equals("BBBB")) 
     { 
      n=1; 
      Matrix[m][n]=SBtemp2.diff; 
     } 
     else if(SBtemp2.name2.equals("AAAA")) 
     { 
     n=0; 
      Matrix[m][n]=SBtemp2.diff; 
     } 
    } 

    } 

    // Print matrix 
    for(n=0;n<3;n++) 
{ 
    for(m=0;m<3;m++) 
     System.out.print(Matrix[m][n]+" "); 
     System.out.println(" "); 
    } 
} 

}