Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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_Dictionary_Object_Java 8 - Fatal编程技术网

如何根据java映射中的最低键值获取值

如何根据java映射中的最低键值获取值,java,dictionary,object,java-8,Java,Dictionary,Object,Java 8,我的地图是 Map<Long,Plan> planMap= new HashMap<>(); planMap.put(123,planObject1); planMap.put(345,planObject2); planMap.put(678,planObject3); Map planMap=newhashmap(); planMap.put(123,planObject1); planMap.put(345,planObject2); planMap.put(67

我的地图是

Map<Long,Plan> planMap= new HashMap<>();
planMap.put(123,planObject1);
planMap.put(345,planObject2);
planMap.put(678,planObject3);
Map planMap=newhashmap();
planMap.put(123,planObject1);
planMap.put(345,planObject2);
planMap.put(678,planObject3);
如何基于最低的键值检索计划对象 i、 e:我想用123键检索planObject1(因为它是最低的)

请帮助我们了解可能性

谢谢

long minPlan=long.MAX\u值;
for(长键:planMap.keySet()){
if(minPlan
System.out.println(“min is=“+planMap.get(min))

SortedMap planMap=newtreemap();
planMap.put(123,planObject1);
planMap.put(345,planObject2);
planMap.put(678,planObject3);
Map.Entry=planMap.firstEntry();

SortedMap可用于范围等。我建议您使用另一种数据结构或实现,因为从
HashMap的
迭代器()
获取的元素顺序不应受到限制。最简单但效率低下的解决方案是迭代整个
entrySet()
并搜索最低的键:

String value = planMap.entrySet().stream()
        .min(Entry.comparingByKey()).get().getValue();
这仅在
映射
不为空时有效。我建议您在
isEmpty()前面加上前缀
check

请注意,此操作的运行时复杂性为
O(n)
。如果重复执行此操作,可以查看
TreeMap

TreeMap<Long, String> planMap = new TreeMap<>();
String value = planMap.firstEntry().getValue();

是否有理由不必要自动装箱到
long
?@Glains否。我只是更习惯于编写原语。
SortedMap<Long, Plan> planMap = new TreeMap<>();
planMap.put(123, planObject1);
planMap.put(345, planObject2);
planMap.put(678, planObject3);

Map.Entry<Long, Plan> entry = planMap.firstEntry();
String value = planMap.entrySet().stream()
        .min(Entry.comparingByKey()).get().getValue();
TreeMap<Long, String> planMap = new TreeMap<>();
String value = planMap.firstEntry().getValue();
Map<Long, String> planMap = new LinkedHashMap<>();

// elements need to be added in correct order and the Map may not
// be modified after elements are inserted to not break
// consistency with the lowest key
planMap.put(123L, "Plan 1");
planMap.put(345L, "Plan 2");
planMap.put(678L, "Plan 3");

String value = planMap.entrySet().iterator().next().getValue();