0

目前,我正在遍历具有重要性值的消息列表以及它自己使用的消息字符串:

for(String MessageItem : MainEngine.mCurrentLevel.mNewsFeed.mMessageList.keySet())
{
     //Do message stuff here.
}

我有一个问题,屏幕上只能显示 10 条消息,并且需要来自最新消息。上面的问题是它仅从索引 0 到 10 显示。仅此而已。

无论如何从顶部索引开始并使用foreach反向进行?

4

2 回答 2

2

您不能LinkedHashMap以相反的顺序直接迭代 a 。API 不允许这样做。

您可以做的最好的事情是将键(或键/值对)复制到数组中,然后以相反的顺序迭代数组。

(编写代码很简单......我鼓励你自己做!)

于 2013-08-29T04:47:17.383 回答
1

您不必遍历它。但是将钥匙拔下并将其存储在列表中会很方便。那是您可以进行 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 的回答

于 2013-08-29T04:46:20.123 回答