目前,我正在遍历具有重要性值的消息列表以及它自己使用的消息字符串:
for(String MessageItem : MainEngine.mCurrentLevel.mNewsFeed.mMessageList.keySet())
{
//Do message stuff here.
}
我有一个问题,屏幕上只能显示 10 条消息,并且需要来自最新消息。上面的问题是它仅从索引 0 到 10 显示。仅此而已。
无论如何从顶部索引开始并使用foreach反向进行?
目前,我正在遍历具有重要性值的消息列表以及它自己使用的消息字符串:
for(String MessageItem : MainEngine.mCurrentLevel.mNewsFeed.mMessageList.keySet())
{
//Do message stuff here.
}
我有一个问题,屏幕上只能显示 10 条消息,并且需要来自最新消息。上面的问题是它仅从索引 0 到 10 显示。仅此而已。
无论如何从顶部索引开始并使用foreach反向进行?
您不能LinkedHashMap
以相反的顺序直接迭代 a 。API 不允许这样做。
您可以做的最好的事情是将键(或键/值对)复制到数组中,然后以相反的顺序迭代数组。
(编写代码很简单......我鼓励你自己做!)
您不必遍历它。但是将钥匙拔下并将其存储在列表中会很方便。那是您可以进行 indexOf() 类型操作的唯一方法。
List<String> keyList = new ArrayList<String>(map.keySet());
// Given 10th element's key
String key = "aKey";
int idx = keyList.indexOf(key);
for ( int i = idx ; i >= 0 ; i-- )
System.out.println(map.get(keyList.get(i)));
有关更多详细信息,请参阅Kal 的回答