我需要在Java中使用Maps for Android应用程序。但问题是列表会自动排序。如何使用Maps以与插入数据相同的顺序获取数据。
答案 0 :(得分:19)
您应该LinkedHashMap
用于此目的。有关详细信息,请访问Android Docs和Java Docs。
答案 1 :(得分:5)
LinkedHashMap维持广告订单。
答案 2 :(得分:2)
LinkedHashMap将使数据保持与插入时相同的顺序。
答案 3 :(得分:2)
正如您和我所发现的,LinkedHashMap并不是非常有用。 (无论如何,它的存在意义何在?)
我有一个哈希表(从语义上来说,我认为它本应被称为散列表)
它有一个arraylist和一个hashmap。 arraylist存储密钥。
hashlist.put(key,value)将执行
hashlist.get(int position)将执行 - map.get(list.get(position))
这是我在2003年写的HashVector和HashTree类的简化,当时我需要用Java建模javascript和xml对象,保留它们的顺序。但是,我没有找到时间或必要性来简化gwt可序列化的哈希树。
再想一想,GWT如何实现一个hashmap?我想当我有时间时,我需要用faststringmap替换hashmap。 Google的faststringmap不公开。它适用于GWT编译器的私人使用。因此,您必须复制其代码并将其更改为公共类:http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/client/ui/FastStringMap.java
可能是,GWT编译器无论如何都会默默地使用它 - 我是否需要使用faststringmap对编译器替换hashmap进行微观管理?
顺便说一句,
你仍然可以通过谷歌搜索" googlecode synthful hashtree"来寻找哈希树。
Hashtree允许您创建一个对象树,并允许您使用像路径一样的点约定xpath来检索对象。
hashtree.get("hello.dolly.how.are.you");
可以重新指定分隔符,以便您可以存储或使用
hashtree.get("hello/dolly/how/are/you");
hashtree.put("hello/dolly/how/are/you", value);
答案 4 :(得分:1)
使用LinkedHashMap
。 please follow this link for more details