标签: lambda

新的C11标准是否支持lambdas?

我们知道C++ 11确实有lambda但是C11吗?

c lambda standards

-3
推荐指数
1
解决办法
186
查看次数

使用 java Lambdas 获取列表的乘积

如何使用 java Lambdas 获取数组的乘积。我知道在 C# 中它是这样的:

result = array.Aggregate((a, b) => b * a);

编辑:使问题更清楚。

java lambda java-stream

-3
推荐指数
1
解决办法
831
查看次数

使用 java 8 流将集合转换为 Map<String,Collection<String>>

我希望将 a 转换Collection<Placement>Map<String, Collection<String>>使用 java 流,其中Placement类如下

public class Placement {

   private String id;

   /* Links two placements, may be same for atleast 2 placements. */
   private String futureLinkId;
}
Run Code Online (Sandbox Code Playgroud)

地图的键是未来链接 id,值是放置 id。例如,如果有 2 个展示位置 p1 { id=1, futureLinkId=f1 }, p2 { id=2, futureLinkId=f1 },则输出应为Map { f1 - { id1, id2 } }

java lambda java-stream

-3
推荐指数
1
解决办法
1874
查看次数

数组长度的好 lambda?

数组长度是否有优雅的 lambda?类似于方法引用的东西,而不是方法?Arraylength更像是一个公共的 final 字段。

从一个锯齿状的二维数组 ( Object[][]) 我想找到最长的内部数组。这很容易:

    OptionalInt width = Stream.of(myJaggedArray).mapToInt(line -> line.length).max();
Run Code Online (Sandbox Code Playgroud)

我只是想知道当我找不到比line -> line.length. 我原以为Object[]::length可能会起作用,但它给出了“类型 Object[] 没有定义适用于此处的长度(Object[])”。我在网上搜索过,但没有找到替代方法。

我可以用我所拥有的快乐生活。也许这只是由不是来自方法的长度引起的数组的特殊之处。认为值得一问。

java arrays lambda

-3
推荐指数
1
解决办法
1111
查看次数

LINQ C# 中的分组和字符串连接

我是 C# linq 新手。

我的数据结果如下,

Id | Name   | Code
1  | Go     | GOS
1  | RES    | RECSO
1  | ICS    | ICSO 
2  | Go     | GOS
2  | ICS    | ICSO 
Run Code Online (Sandbox Code Playgroud)

我想要的结果如下,

Id | Name     | Code
1, Go,RES,ICS | GOS,RECSO,ICSO 
2, Go,ICS     | GOS,ICSO
Run Code Online (Sandbox Code Playgroud)

有人可以用优化的方式为此提供 linq 查询吗,因为我有大数据集。

提前致谢

c# linq lambda c#-4.0

-3
推荐指数
1
解决办法
5461
查看次数

如何在C ++ 17中将“ else-if”与初始化程序一起使用?

cpp参考https : //en.cppreference.com/w/cpp/language/if,看来我不能做到这一点:

if (cond)
{}
else if (init; cond)  // <<--- init not allowed with "else if"
{}
Run Code Online (Sandbox Code Playgroud)

我以一种相当愚蠢的方式解决了它:

if (cond)
{}
else if ([]() -> bool
{
    init;
    if (cond)
    {
        // Do something in the same scope as 'init'
        return true;
    }
    return false;
}())
{}
Run Code Online (Sandbox Code Playgroud)

我是否在这里缺少有关使用C ++ 17“正确”执行此操作的明显方法?

c++ lambda if-statement c++17

-3
推荐指数
1
解决办法
71
查看次数

java 8中的迭代返回列表中的最后一个值

显然我不擅长 Java 8。有人能告诉我为什么我的集合在迭代过程中没有保留我的所有值吗?如果我放置一个断点,代码会迭代但只返回最后一个值。

Set<Group> groups = new Hashset<>();
Group group = new Group();
List my = model.getValues();

list.stream().forEach(gr -> {
            group.setName(gr.getDescription());
            group.setDescription(gr.getDescription());

           groups.add(group); 
});

System.Out.Println(groups);
Run Code Online (Sandbox Code Playgroud)

java lambda list java-8 java-stream

-3
推荐指数
1
解决办法
93
查看次数

以原始顺序在数组列表中使用并行流

我有一个产品,我想用相同的原始顺序在另一个数组中填充产品,我使用了并行流,结果没有按原始顺序排序

    List<Product> products = productList.getProducts();
    
    List<ProductModelDTOV2> productModelDTOV2s = new ArrayList<>();
    
    products.parallelStream().forEach(p -> {
        try {
            ProductModelDTOV2 ProductModelDTOV2 = dtoFactoryV2.populate(p, summary);
            productModelDTOV2s.add(ProductModelDTOV2);
        } catch (GenericException e) {
            log.debug(String.format("Unable to populate Product %s", p));
        }
    });
    return productModelDTOV2s;
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

-3
推荐指数
1
解决办法
68
查看次数

不兼容的类型:lambda 表达式中的错误返回类型 | void 不是函数式接口

我正在浏览 Java 8 Feature 并使用 Jshell 来探索它。我尝试运行以下命令:

Consumer<String> consumer = (str)->System.out::println;
Run Code Online (Sandbox Code Playgroud)

但它失败并出现以下错误:

Error:
|  incompatible types: bad return type in lambda expression
|      void is not a functional interface
Run Code Online (Sandbox Code Playgroud)

我不明白到底是什么问题 Consumer 接受一个论点而什么都不返回。我在这里通过传递 1 arg str 和打印来做同样的事情。那么这个语法有什么问题。

谢谢,

java lambda consumer java-8 functional-interface

-3
推荐指数
1
解决办法
100
查看次数

在生成器表达式中使用 lambda 函数

我正在尝试使用lambda函数计算列表中给定 val 的总出现次数:

def countOccurrence(givenList, val):
    result = sum(1 for i in range(len(givenList)) if lambda i: givenList(i) == val)
    return result

givenList = [3, 4, 5, 8, 0, 3, 8, 5, 0, 3, 1, 5, 2, 3, 4, 2]
print(countOccurrence(givenList, 5))
Run Code Online (Sandbox Code Playgroud)

但是返回的结果是16,它只不过是列表的长度。

python lambda python-3.x

-3
推荐指数
1
解决办法
62
查看次数