Java 使用番石榴从树状图中提取最后一个x值

Java 使用番石榴从树状图中提取最后一个x值,java,sorting,dictionary,guava,treemap,Java,Sorting,Dictionary,Guava,Treemap,我有一个长的和字符串的树状图,我把它按键的相反顺序排序,这样我可以在图的顶部看到最新的时间戳。Bbelow是我的代码,其中clientHistory将按键降序排序 Map<Long, String> clientHistory = new TreeMap<>(Collections.reverseOrder()); for(...) { // ... some code clientHistory.put(data.getModifiedTime(),

我有一个长的和字符串的树状图,我把它按键的相反顺序排序,这样我可以在图的顶部看到最新的时间戳。Bbelow是我的代码,其中
clientHistory
将按键降序排序

Map<Long, String> clientHistory = new TreeMap<>(Collections.reverseOrder());

for(...) {
    // ... some code
    clientHistory.put(data.getModifiedTime(), clientId);
}
上面的第行给了我一个错误,因为类型Map的方法genderingmap()未定义。我做错了什么


如果我使用的是
downingmap
功能,我甚至需要树形图吗?

你不需要番石榴。您可以按如下方式进行操作:

int size = yourMap.size();
List<String> leastRecent = new ArrayList<>(
    yourMap.values()).subList(size - 400, size);
int size=yourMap.size();
List leastRecent=新阵列列表(
yourMap.values()).subList(大小-400,大小);

根据键,这将返回地图中最新的值,因为地图已按降序排列其条目。

或者,如果我将其按升序排列,则可以使用您的第一个建议,而不是按降序排列。正确吗?@user1950349正确。但在这种情况下,您会将条目从最新排序到最新排序。试试看。
Map<Long, String> clientHistory = new TreeMap<>(Collections.reverseOrder());

for(...) {
    // ... some code
    clientHistory.put(data.getModifiedTime(), clientId);
}