Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该如何根据年龄值建立排名模型?(爪哇语)_Java_Class_Modeling_Ranking - Fatal编程技术网

Java 我应该如何根据年龄值建立排名模型?(爪哇语)

Java 我应该如何根据年龄值建立排名模型?(爪哇语),java,class,modeling,ranking,Java,Class,Modeling,Ranking,我的目标是根据分数/分数和年龄获得球员排名。 我在csv文件中有一个播放器条目列表,如下所示: 姓名;斯达;响;AK;IDNR;Nat;Vbd;韦林;PKT 斯特凡·阿尔茨;0;M35;17901189;内德;TVN;TC Kaiserswerth;400,0 阿贝,彼得,;A.0;M75;14000158;蒙古包;TVN;tcam-Volkswald;282,0 您可以看到第4列包含年龄(AK)。我想根据“PKT”(is点数)列为每个不同的AK创建一个排名 我想到了一个类似于字典的东西,其中A

我的目标是根据分数/分数和年龄获得球员排名。 我在csv文件中有一个播放器条目列表,如下所示:

姓名;斯达;响;AK;IDNR;Nat;Vbd;韦林;PKT

斯特凡·阿尔茨;0;M35;17901189;内德;TVN;TC Kaiserswerth;400,0

阿贝,彼得,;A.0;M75;14000158;蒙古包;TVN;tcam-Volkswald;282,0

您可以看到第4列包含年龄(AK)。我想根据“PKT”(is点数)列为每个不同的AK创建一个排名

我想到了一个类似于字典的东西,其中AK值作为键,数组中填充了每个玩家的值,在AK列中有这个值。所以我可以使用类数组的排序方法

另一方面,我可以创建一个类playerEntry,将所有这些列作为属性。但我认为按年龄组进行排序更困难

还有一个额外的要求:如果一名球员的身份为“a”,他将获得一个排名,但他不在总名单中(外国人不计入国家排名)

最后,结果应类似于此小表格:

Name Stat Rang AK IDNR Nat Vbd Verein PKT Brown, Dustin - 3 M30 18404206 GER TVN Gladbacher HTC 9848 Kohlschreiber, Philipp - 1 M30 18304168 GER TVM TK Kurhaus Aachen 9848 Becker, Benjamin - 2 M30 18108797 GER BAD TK GW Mannheim 8733 Mertl, Jan A 4 M30 18201757 CZE TTV Erfurter TC Rot-Wei 8650 Ghem, Andre A 4 M30 18250664 BRA TVN Ratinger TC GW 4777 Mayer, Florian - 4 M30 18303368 GER TVM TK Kurhaus Aachen 4763 名称统计范围AK IDNR Nat Vbd Verein PKT 布朗,达斯汀-3 M30 18404206格TVN格拉德巴赫HTC 9848 菲利浦科尔施雷伯-1 M30 18304168格TVM塔克库豪斯亚琛9848 贝克尔,本杰明-2 M30 18108797格巴德塔克GW曼海姆8733 Mertl,1月4日M30 18201757 CZE TTV Erfurter TC Rot Wei 8650 盖姆,安德烈A 4 M30 18250664胸罩TVN Ratinger TC GW 4777 佛罗里达州迈耶-4 M30 18303368格TVM蒂克库豪斯亚琛4763 你可以看到,像梅特尔和盖姆这样的外国球员有着相同的排名,梅耶也有着相同的排名,尽管他得分较少

如果有任何建议,有什么更好的方法?
排序后,我将不得不添加排名,但这将很容易。;-)

在PlayerEntry类中,实现java.lang.Comparable接口,并提供所述compareTo()方法的实现


在compareTo()中,您只需比较年龄组中的每个玩家条目实例

欢迎来到StackOverflow!请参阅第页,以帮助您制定更好的问题。至少,你应该能够展示你自己的一些研究,解决问题的一些尝试,以及你的困境。你现在所拥有的只是一套要求和希望有人会为你做这项工作(这不是工作的方式)。。好运气是有效的,但我不知道如何比较不同年龄段的球员。我将提供一个传统的例子…我是这样做的:PlayerEntry haas=新PlayerEntry(“汤米·哈斯”,“M35”,7000);PlayerEntry haas2=新的PlayerEntry(“汤米·哈斯2”,“M35”,7001);类PlayerEntry实现可比较的{private String name;private String ak;private int points;public PlayerEntry(String name,String ak,int points){this.name=name;this.ak=ak;this.points=points;}@Override public int compareTo(PlayerEntry播放器){返回this.points-player.points;}我不知道如何使用ak和ak中的点进行排序。您的compareTo方法可以很简单:`@Override public int compareTo(PlayerEntry otherPlayer){if(this.getAk()!=null){返回this.getAk().compareTo(otherPlayer.getAk());}return-1;}`查看此链接以获取示例:排序是最简单的部分-使用树集或其他有序集合,PlayerEntry将自行排序。但这将仅对AK进行排序,而不是对AK中的点进行排序。我对此考虑了一些。编码方式如下:if(this.AK.equals(otherPlayer.getAK()){然后返回这个.points otherPlayer.getPoints();}否则返回这个.AK.hashCode()-otherPlayer.getAK().hashCode();会解决这个问题,我想,这会先为AK排序,然后为点排序。所以在AK中,所有条目都是为点排序的。