我想创建一个键是字符串并且值是整数的一对LinkedList?
4 回答
LinkedList
没有钥匙。它是元素列表,而不是键/值映射。
如果你想要一个LinkedList
每个元素都是一对Integer
/String
值的地方,你需要选择一个:
- 创建一个泛型
Pair
类 - (Ab)使用现有的泛型类(例如
Map.Entry
) - 为您的特定场景创建自定义类
我建议将最后一个选项作为最明智的选项 - 您将能够根据字符串和整数的真正含义为其赋予适当的语义和名称。哎呀,您还可以避免将整数装箱,因为您可以:
public class WhateverYouCallIt {
private final int firstValue;
private final String secondValue;
// Constructor, properties
}
您只能在 LinkedList 中使用 Object,这意味着您不能使用 Java Primitives。但是,您似乎需要一个 Map 结构。
我推荐使用 java.util.HashMap,它允许你创建一个 Key、Value 对。
例子:
HashMap<String,Integer> a = new HashMap<String,Integer>();
a.put("one",1);
a.put("two",2);
System.out.println(a.get("one"));
//prints 1
System.out.println(a.get("two"));
//prints 2
编辑:根据您的评论,我看到您需要订单,然后使用以下示例:
LinkedHashMap<String, Integer> b = new LinkedHashMap<String,Integer>();
b.put("one",1);
b.put("two",2);
b.put("a",3);
for (String key:b.keySet())
{
System.out.println(b.get(key)); // print 1 then 2 finally 3
}
希望这是您要问的(如果是,请修改您的问题)。
一个错误是您需要Integer
而不是int
,但正如其他人指出的那样,LinkedList
它不采用键/值对。
我想 HashMap 是你的追求。正如其他人所说,您不能在 LinkedList 或 ArrayList 等库存储类中使用诸如“int”之类的原始类型,而必须使用诸如“Integer”之类的对象。
HashMap hash = new HashMap();
阅读此内容以获取更多信息:http ://docs.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html