具有键/值对并根据插入顺序排序的java集合
我想要一些可以插入键/值对的东西,顺序就是我插入项目的顺序 我看过一些关于map的帖子,但似乎我必须为它们编写自己的比较器具有键/值对并根据插入顺序排序的java集合,java,collections,Java,Collections,我想要一些可以插入键/值对的东西,顺序就是我插入项目的顺序 我看过一些关于map的帖子,但似乎我必须为它们编写自己的比较器 我希望插入的第一个项目是第一个存储的项目,第二个是集合中的第二个项目,等等。为什么不创建一个类来包含一个键和一个值,然后将它们存储在您最喜欢的列表中 class Pair { Key k; Value v; } List<Pair> stuff = new ArrayList<Pair>(); Pair p = new Pair(
我希望插入的第一个项目是第一个存储的项目,第二个是集合中的第二个项目,等等。为什么不创建一个
类来包含一个键和一个值,然后将它们存储在您最喜欢的列表中
class Pair {
Key k;
Value v;
}
List<Pair> stuff = new ArrayList<Pair>();
Pair p = new Pair();
...
stuff.add(p);
类对{
键k;
v值;
}
List stuff=new ArrayList();
对p=新对();
...
添加(p);
尝试使用LinkedHashMap
,从:
映射接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与HashMap的不同之处在于,它维护一个贯穿其所有条目的双链表。此链表定义了迭代顺序,通常是将关键帧插入贴图的顺序(插入顺序)
似乎您需要使用带有名称/值对象的列表
List<NameValuePair> values = new Arraylist<NameValuePair>();
LinkedHashMap是您正在寻找的合适类型的数据结构!
因为它扩展了HashMap(它允许您在键/值对中有一个元素)并维护了条目的linkedlist(它为您提供了插入顺序)
有关更多信息,请查看以下类型的地图:
去AbstractMap看看这些
HashMap和TreeMap
HaseTaby-
我赞成Link KeHasmap建议,但是,如果您走这条路线,查看MAP.Enter并强烈考虑使用它,而不是定义您自己的NAMEPAREPTEAL类。@ USE94900:<代码> MAP。条目< /代码>是一个接口,而不是一个类,并且我不知道实现它的任何公共JDK类。我同意NameValuePair
应该实现它。@ruakh请查看AbstractMap.SimpleEntry和AbstractMap.SimpleImmutableEntry。@user949300:Sweet!谢谢你的提示!打字太多了…:-(
class NameValuePair {
private name;
private value;
... get/set
}