我有一個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