我有以下.row {
width: 100%;
display: table;
table-layout: fixed;
}
.col {
display: table-cell;
}
@media screen and (max-width: 1300px) {
.col {
display: block;
}
.col + .col {
display: table-header-group;
background: gray;
}
}
如何在没有迭代的情况下获得第一个密钥:
<div class="row">
<div class="col">
left
</div>
<!-- /.col -->
<div class="col">
right
</div>
<!-- /.col -->
</div>
<!-- /.row -->
由于
答案 0 :(得分:8)
由于您的问题对于您认为的“第一把钥匙”并不十分具体,我将列出几个选项。
只是键集中的第一个
String firstKey = map.keySet().iterator().next();
但不知道提供给您的信息。
最小的键
String firstKey = map.keySet().stream().min(String::compareTo).get();
最小值的关键
String firstKey = map.entrySet().stream().min((a,b) -> a.getValue().compareTo(b.getValue())).get().getKey();
第一个插入的密钥
这不适用于常规HashMap
,因为它不会保留排序。请改用LinkedHashMap
。
Map<String, Double> map = new LinkedHashMap<>();
String firstKey = map.keySet().iterator().next();
答案 1 :(得分:3)
获得&#34;第一个&#34;的价值键,你可以使用它
map.get(map.keySet().toArray()[0]);
您可以使用流。对于 TreeMap / LinkedHashMap ,其中排序很重要,您可以编写
map.entrySet().stream().findFirst();
对于 HashMap ,没有订单,因此findAny()
可能会在不同的调用中返回不同的结果
map.entrySet().stream().findAny();
答案 2 :(得分:2)
Map<String, Double> map=new HashMap<>();
Map.Entry<String, Double> entry=map.entrySet().iterator().next();
String key= entry.getKey();
但是HashMap不会维护插入顺序。您可以使用LinkedHashMap
答案 3 :(得分:2)
map.entrySet().stream().findFirst().get().getKey()
答案 4 :(得分:1)
只需调用using
一次,确保迭代器只在第一个位置。
it.next()
答案 5 :(得分:0)
如果您要迭代Map
并希望按照插入条目的顺序迭代它,则应使用LinkedHashMap
而不是HashMap
。
这是假设&#34;第一个键&#34;表示您插入的第一个。然后你可以按照插入条目的顺序迭代它,或者如果你只想要你说的第一个键,你可以调用map.keySet().toArray()[0]
。
答案 6 :(得分:0)
尝试使用LinkedHashMap而不是HashMap,它在调用keySet()时维护插入顺序。