我正在尝试模拟一个游戏板,多个玩家可以提交他们的游戏分数。
波乔即是。java表示排行榜中的一个条目。注意overriden equals()方法。
Position是排行榜中的位置,1是得分最高的用户
public class EntryTreeMapOption {
private String uid;
private int score;
private int position;
public EntryTreeMapOption(String uid, int score) {
this.uid = uid;
this.score = score;
}
public EntryTreeMapOption() {
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((uid == null) ? 0 : uid.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
EntryTreeMapOption other = (EntryTreeMapOption) obj;
if (uid == null) {
if (other.uid != null)
return false;
} else if (!uid.equals(other.uid))
return false;
return true;
}
@Override
public String toString() {
return "Entry [uid=" + uid + ", score=" + score + ", position=" + position + "]";
}}
我使用一个树状图来存储条目,根据得分,它们会自动排序
public class GameDefault2 {
private TreeMap<EntryMapOption, String> leaderBoardEntryUserMap;
{
leaderBoardEntryUserMap = new TreeMap<>(Comparator.comparingInt(EntryTreeMapOption::getScore).reversed()
.thenComparing(EntryTreeMapOption::getUid));
}
@Override
public void submitScore(String uid, int score) {
EntryMapOption newEntry = new EntryMapOption(uid, score);
leaderBoardEntryUserMap.put(newEntry, uid);
}
@Override
public List<EntryMapOption> getLeaderBoard(String uid) {
List<EntryMapOption> userEntryList = .....
.....
.....
return entriesOptionTwo;
}
}
如何设置条目的“位置”字段?例如:下面是按分数排序的条目,如何获得相应的“索引/位置”并将其设置在条目中?
Entry [uid=user1, score=14, position=0]
Entry [uid=user2, score=8, position=0]
Entry [uid=user3, score=7, position=0]
Entry [uid=user4, score=7, position=0]
Entry [uid=user5, score=4, position=0]
Entry [uid=user6, score=3, position=0]
Entry [uid=user7, score=3, position=0]
Entry [uid=user8, score=1, position=0]
根据我的理解,您应该能够使用listarray=List.toArray()
将列表转换为数组,然后使用
用于(int i=0;i
将它们的位置设置在它们的索引中。(加一,因为获胜者应该是第一名,而不是第零名)
全部显示 返回或设置指定命令栏的位置。MsoBarPosition 类型,可读写。MsoBarPosition 可为以下 MsoBarPosition 常量之一:msoBarBottommsoBarFloatingmsoBarLeftmsoBarMenuBarmsoBarPopupmsoBarRightmsoBarTop 示例 本示例对命令栏集合中的元素逐个进行如下操作:将自定义命令栏定位在应用程
我想使用DynamoDBMapper只更新项目的特定属性。例如,我有一个带有属性的用户表。,id,name,地址。 我想只更新地址属性,而不是其他字段(选择性更新)。 我可以使用UpdateItemSpec找到一个示例,但在DynamoDBMapper中找不到。使用UpdateItemSpec,我可以使用withUpdateExpression()定义更新表达式。更多细节可以在这里找到。 是否有任
我想使用POJO作为源来更新JOOQ记录中更改的字段<代码>记录。from(Object)几乎正确,但根据文档 结果记录的所有值的内部“更改”标志都将设置为true。 我只希望实际更改的字段(由对象决定。等于(对象,对象))更新其标志。 这有两个原因: 我不想触发插入
问题内容: 我有一个 保持地图根据浮动量排序的最佳方法是什么? 是最好的答案??如何使用? 我只创建一次地图,并替换了经常使用的和。 问题答案: 我会用,它实现。正是为此目的而设计的。 例: 有关SortedMap的信息,请参见Java教程页面。 和这里的教程列表相关TreeMap的。
我有一个表单,其中包含所需的数据,我使用了以下代码: 在同一页面上有一个datatable,它包含我通过表单添加的对象(付款)。添加对象后,我使用以下代码对datable进行更新以添加新对象: 我遇到的问题是,当数据没有输入,我单击按钮,更新完成,表显示为空!但是,验证消息正确地显示为强制数据。 datatable是 我在CDI中使用,因为托管bean如下所示://import //类 }
我使用以下方法在映射中映射值: 这里建议:https://stackoverflow.com/a/25905196/411965 我想创建一个与SortedMap类似的方法: 用java 8做这件事的方法是什么?