java – 流映射以便查找最新密钥的值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 流映射以便查找最新密钥的值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2075字,纯文字阅读大概需要3分钟。
内容图文
![java – 流映射以便查找最新密钥的值](/upload/InfoBanner/zyjiaocheng/759/4106ebac249e401eb0c87c7a81326c24.jpg)
我有一个Map< Element,Attributes>由以下(示例)类和枚举的实例组成,其中我想通过stream()获取最新键的值.最近的键可以由类Element的属性creationTime确定,Map中的相应值只是一个枚举值:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Element implements Comparable<Element> {
String abbreviation;
LocalDateTime creationTime;
public Element(String abbreviation, LocalDateTime creationTime) {
this.abbreviation = abbreviation;
this.creationTime = creationTime;
}
public String getAbbreviation() {
return abbreviation;
}
public void setAbbreviation(String abbreviation) {
this.abbreviation = abbreviation;
}
public LocalDateTime getCreationTime() {
return creationTime;
}
public void setCreationTime(LocalDateTime creationTime) {
this.creationTime = creationTime;
}
/*
* (non-Javadoc)
*
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(Element otherElement) {
return this.creationTime.compareTo(otherElement.getCreationTime());
}
@Override
public String toString() {
return "[" + abbreviation + ", " + creationTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME) + "]";
}
}
请注意,Element不能实现Comparable< Element>只使用LocalDateTime的内置比较.
public enum Attributes {
DONE,
FIRST_REGISTRATION,
SUBSEQUENT_REGISTRATION
}
我当前的方法是只能过滤keySet并找到最新的密钥,然后我用它来简单地获取新代码行中的值.我想知道是否可以在单个stream().filter(…)语句中:
Map<Element, Attributes> results = new TreeMap<>();
// filling the map with random elements and attributes
Element latestKey = results.keySet().stream().max(Element::compareTo).get();
Attributes latestValue = results.get(latestKey);
Can we get a value by filtering the
keySet
of aMap
in a singlestream()
statement like
Attributes latestValue = results.keySet().stream()
.max(Element::compareTo)
// what can I use here?
.somehowAccessTheValueOfMaxKey()
.get()
?
附加信息
我不需要像null那样的默认值,因为只有在包含至少一个键值对时才会检查Map,这意味着至少会有一个最新的元素 – 属性对,一个是唯一的.
解决方法:
Attributes latestValue = results.keySet().stream()
.max(Element::compareTo)
.map(results::get)
.get()
内容总结
以上是互联网集市为您收集整理的java – 流映射以便查找最新密钥的值全部内容,希望文章能够帮你解决java – 流映射以便查找最新密钥的值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。