我有下面的方法,这是有效的。我试图完成所有的事情,并获得可选流中的值,而不必执行额外的if检查。是否可以映射并在索引0处获取结果对象?请指教,谢谢。
public String getData(HttpEntity<Request> request, String endPoint){
ResponseEntity<Reponse> response =
template.exchange(endPoint, HttpMethod.POST, request, Reponse.class);
List<Result> results = Optional.ofNullable(response)
.map(ResponseEntity::getBody)
.map(Response::getQueryResult)
.map(QueryResult::getResults)
// getResults is an ArrayList of Result Objects. Could I get the Result Object at index 0 here?
// following that I plan to go .map(Result::getValue) here.
.orElse(null);
if(CollectionUtils.isNotEmpty(results)){
return results.get(0).getValue();
}
return null;
}
return Optional.ofNullable(response)
.map(ResponseEntity::getBody)
.map(Response::getQueryResult)
.map(QueryResult::getResults)
.filter(CollectionUtils::isNotEmpty)
.map(list -> list.get(0)) // hate this part :)
.map(Result::getValue)
.orElse(null);
如果您是方法引用的粉丝,并且发现lambdas很无聊
return Optional.ofNullable(response)
.map(ResponseEntity::getBody)
.map(Response::getQueryResult)
.map(QueryResult::getResults)
.filter(CollectionUtils::isNotEmpty)
.map(List::iterator)
.map(Iterator::next)
.map(Result::getValue)
.orElse(null);
我展示它是出于教育原因,尽管我喜欢它,但我不提倡它。
如何从字符串列表中获取映射,其中索引是键,字符串是值? 如果我有这样的名单 我想要一张< code >地图 当我执行以下操作时,我得到一个错误 错误 所需类型:int提供:Object 当我将其转换为int或Integer时 我明白了 收集(java.util.function.Supplierjava.util.function.ObjIntConsumerjava.util.function.
我正在尝试学习如何使用Java 8的集合,我想知道是否有一种方法将我的列表转换成一个地图使用Java流。 我想知道如何使用流将上面的列表创建到一个映射中。我知道如何将foreach etc与puts一起使用,但我只是想知道是否有更优雅的方法使用流构建映射。(我知道下面的语法不正确,我是流的新手,不知道怎么写) 目标是代表以下内容。
我有一个实体,看起来像这样: 输入数据是一个
问题内容: 有一个字符串列表,我需要构造一个有效地成对的对象列表。目前,我有这样的代码使用谷歌收藏: 我想使用Java 8流来做到这一点。如果没有索引,我可以这样做: 要获取索引,我将必须执行以下操作: 但是,文档说映射功能应该是无状态的,但实际上是其状态。 有没有办法将顺序流的元素映射到它们在流中的位置? 问题答案: 您可以执行以下操作: 但是,根据列表的基础实现,它可能效率不高。您可以从中获取
我已经创建了一种计算字母表中每个字符的方法。我正在学习流(函数式编程),并尝试尽可能经常地使用它们,但我不知道在这种情况下该怎么做:
我有个问题。我在enter中得到了一个csv,其值如下: 该文件的名称类似于:AB01_TEST_ABDC_YYYYMMDd.csv 我需要把它们放到一张地图上,就像: Bar是csv中一行的bean,Foo是由Bar的一些元素创建的bean 现在,我成功地通过CSV的第一列值将列表拆分为一个映射。这给了: 我是这样做的: baz必须被csv的第一列和每个第一列值的行的itération拆分。因为