Java 8 Java8流将特定对象从映射复制到列表
正在寻找Java8/streams中的替代代码。Java 8 Java8流将特定对象从映射复制到列表,java-8,java-stream,Java 8,Java Stream,正在寻找Java8/streams中的替代代码。 我想使用预定义的键数组将特定值从地图复制到列表中 在Java 7中完成此任务的代码如下: public List<Fruit> getFruitList(Map<String, Fruit> fruitMap) { final String[] fruitNames = { "apple", "banana", "mango" }; final A
我想使用预定义的键数组将特定值从地图复制到列表中 在Java 7中完成此任务的代码如下:
public List<Fruit> getFruitList(Map<String, Fruit> fruitMap) {
final String[] fruitNames = { "apple", "banana", "mango" };
final ArrayList<Fruit> fruitList = new ArrayList<>(fruitNames.length);
for (int i = 0; i < fruitNames.length; i++) {
final String fruitName = fruitNames[i];
final Fruit fruit = fruitMap.get(fruitName);
if (fruit != null) {
fruitList.add(fruit);
}
}
fruitList.trimToSize();
return fruitList;
}
public List getFruitList(Map-fruitMap){
最后一个字符串[]水果名={“苹果”、“香蕉”、“芒果”};
最终ArrayList水果列表=新的ArrayList(水果名.length);
for(int i=0;i
我自己想出了一个可能的解决方案:
return Stream.of(fruitNames)
.map(fruitMap::get)
.filter(Objects::nonNull)
.collect(Collectors.toList());
也许你想用。使用干净的lambda代码是一个很好的选择。