我正在使用HashMap.当我遍历地图时,数据以(通常是相同的)随机顺序返回.但是数据是按特定顺序插入的,我需要保留插入顺序.我怎样才能做到这一点?
在Java中,是否有一个对象用作存储和访问键/值对的Map,但是可以返回一个有序的键列表和一个有序的值列表,这样键和值列表的顺序相同?
因此,作为代码解释,我正在寻找像我的虚构OrderedMap一样的东西:
OrderedMap<Integer, String> om = new OrderedMap<>();
om.put(0, "Zero");
om.put(7, "Seven");
String o = om.get(7); // o is "Seven"
List<Integer> keys = om.getKeys();
List<String> values = om.getValues();
for(int i = 0; i < keys.size(); i++)
{
Integer key = keys.get(i);
String value = values.get(i);
Assert(om.get(key) == value);
}
Run Code Online (Sandbox Code Playgroud) 我想将一个键值对添加到哈希表(或任何其他集合)中,但必须维护插入顺序.我怎样才能做到这一点?
就像我将1添加为键"一"作为值,2作为键和"两"作为值.
输出应该是:
1:one
2:two
Run Code Online (Sandbox Code Playgroud) 我已经按特定顺序设置了HashMap,但它是在一个奇怪的顺序上迭代的!
请考虑以下代码:
HashMap<String, String> map = new HashMap<String, String>();
map.put("ID", "1");
map.put("Name", "the name");
map.put("Sort", "the sort");
map.put("Type", "the type");
...
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
Run Code Online (Sandbox Code Playgroud)
结果:
Name: the name
Sort: the sort
Type: the type
ID: 1
Run Code Online (Sandbox Code Playgroud)
我需要迭代它以便我输入条目.任何帮助将不胜感激.
所以我创建了一个hashmap,但我需要获得我输入的第一个密钥.这是我正在使用的代码:
第一:
public static Map<String, Inventory> banks = new HashMap<String, Inventory>();
Run Code Online (Sandbox Code Playgroud)
第二:
for(int i = 0; i < banks.size(); i++) {
InventoryManager.saveToYaml(banks.get(i), size, //GET HERE);
}
Run Code Online (Sandbox Code Playgroud)
在哪里说//获取这里我想从hasmap获取String.感谢帮助.
我正在寻找一个可以提供差距的集合.目标是:
null不起作用.subList 方法是期望根据索引间隔访问子列表示例用例:
List<Integer> list = /* ? */;
list.add(0,5);
list.add(1,4);
list.add(5,3);
for( Integer i : list )
{
System.out.print( i + " " );
}
/* desired output : "5 4 3 "*/
Run Code Online (Sandbox Code Playgroud) 这是代码:
for(String key : mymap.stringPropertyNames()) {
//mycode
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我注意到我以随机顺序获得了我需要的值,有没有办法使用特定顺序遍历地图?
编辑:Mymap是一个properties对象。