最佳Java Collection,用于存储键,值对,并通过索引或键名访问其对象

spa*_*ker 1 java collections android

我想存储一个键,值对,它允许我通过其位置(排序必须持久)或其键名来获取值.我正在考虑使用HashMap,但我不想遍历所有值以通过索引获取值.

我需要这样的东西:

MyCollection<String, Object> objects = new MyCollection<String, Object>();
objects.put ("id", Object1);
objects.put ("name", Object2);
// And now access the values by index:
Object obj1 = objects.get(1);
// or by key name:
Object obj2 = objects.getByKeyName("name");
Run Code Online (Sandbox Code Playgroud)

什么是最好的集合(它必须是android <11兼容>

Saj*_*tta 6

您可以使用LinkedHashMap.它维护插入的订单.您无法通过索引获取,因为它们都实现了Map接口.你可以这样做 -

public List<String> getByIndex(final LinkedHashMap<String, List<String>> myMap, final int index){
   return (List<String>)myMap.values().toArray()[index];
}
Run Code Online (Sandbox Code Playgroud)