java - 对列表对的值运行 invokeAll

标签 java

我有一个可调用列表:

List<Pair<String, Callable<Integer>>> callabes;

我想使用 ExecutorService::invokeAll 调用所有这些可调用对象,并将此列表变为:List<Pair<String, Integer>>

我该怎么做?

我的执行程序服务是一个固定线程池,我希望受益于它对并行线程数量的限制

最佳答案

我猜测您正在使用 Apache Commons Pair。你遗漏了该信息。如果是这样,则该Pair基本上是一个具有keyvalue的对象。您可以使用streammap来收集

示例应用程序:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.Pair;

/**
 *
 * @author blj0011
 */
public class Main
{
    public static void main(String[] args)
    {
        List<Pair<Integer, String>> test = new ArrayList();
        test.add(Pair.of(1, "one"));
        test.add(Pair.of(2, "two"));
        test.add(Pair.of(3, "three"));

        List<String> values =  test.stream().map(Pair::getValue).collect(Collectors.toList());   

        keys.forEach(System.out::println);
    }
}

您的潜在翻译:

List<Callable<Integer>> values =  test.stream().map(Pair::getValue).collect(Collectors.toList());  

关于java - 对列表对的值运行 invokeAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59276173/

相关文章:

java - 使用扫描器返回字符串

java - 存储多人 PvP 数据的有效方法?

java - 如何在 android Activity 中处理包含两种不同语言的编辑文本的布局的软键盘切换语言?

java - 使用变量类实例化抽象类

java - 根据bean属性值获取最早时间

java - 帮助 Web 服务 vector Java Glassfish

java - 如何将这种鸭子类型(duck typing)(Python)转换为 Java 泛型?

java - 经常调用的方法的日志记录实践

java - java中HashMap的ArrayList上的GroupBy

java - 如何安全地将敏感数据(短字符串)存储到 keystore 中