我有一个HashMap中的条目列表,一个字符串作为一个键和一个Long作为一个值。我试图检查价值是否大于某个数字,但我不知道如何获得价值并检查它。如何获取HashMap值并将其与数字进行比较
我知道这是不正确的,但这个可以说明我的意思比我更可以解释:
long offlineTimeLimit = (offlineTimeLimitConfig*1000);
long limit = (offlineTimeLimit + System.currentTimeMillis());
Long playerName = playerTimeCheck.get(p);
if (playerTimeCheck.containsValue(> limit)) {
}
这得到的时间量的玩家离线允许,offlimeTimeLimitConfig,然后用1000乘以(所以它以毫秒为单位),然后添加当前时间。我想检查散列表中的任何值是否大于当前时间加上时间限制,然后执行代码。
我一直在做研究,并且发现了其他方法来存储我的数据(比如TreeMap),我不确定这是否是一种更好的方式来存储数据。
下面的代码的其余部分:
String p = event.getPlayer().getName();
HashMap<String, Long> playerTimeCheck = new HashMap<String, Long>();
ConfigurationSection section = getConfig().getConfigurationSection("PlayerTime");
long currentTime = System.currentTimeMillis();
String playerCheck = getConfig().getString("PlayerTime");
for (String key : section.getKeys(false)) {
playerTimeCheck.put(key, section.getLong(key));
}
感谢您的帮助, 科尔比
你只需要知道,如果在地图上的任何值大于一些数大?我只是使用一个树形图,按降序排列,然后检查第一个项目的值是否>您的值或不... – jcampos8782
@ jcampos8782树形图按键排序,在这里不起作用。 – criszhao
哦是的,这是正确的...只是使用比较值按值排序:http://stackoverflow.com/questions/1448369/how-to-sort-a-treemap-based-on-its-values – jcampos8782