Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有键/值对并根据插入顺序排序的java集合_Java_Collections - Fatal编程技术网

具有键/值对并根据插入顺序排序的java集合

具有键/值对并根据插入顺序排序的java集合,java,collections,Java,Collections,我想要一些可以插入键/值对的东西,顺序就是我插入项目的顺序 我看过一些关于map的帖子,但似乎我必须为它们编写自己的比较器 我希望插入的第一个项目是第一个存储的项目,第二个是集合中的第二个项目,等等。为什么不创建一个类来包含一个键和一个值,然后将它们存储在您最喜欢的列表中 class Pair { Key k; Value v; } List<Pair> stuff = new ArrayList<Pair>(); Pair p = new Pair(

我想要一些可以插入键/值对的东西,顺序就是我插入项目的顺序

我看过一些关于map的帖子,但似乎我必须为它们编写自己的比较器


我希望插入的第一个项目是第一个存储的项目,第二个是集合中的第二个项目,等等。

为什么不创建一个
类来包含一个键和一个值,然后将它们存储在您最喜欢的
列表中

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
}