二维Java数组中的计数元素

二维Java数组中的计数元素,java,arrays,multidimensional-array,count,element,Java,Arrays,Multidimensional Array,Count,Element,大家好,现在我正在做一项研究,我需要计算“已实现”、“未实现”和“正在进行”的发生率。我需要计算它,因为我的研究是关于马尔可夫决策过程的,我需要定义路径。因此,我需要将每个任务的结果计算到每个P1或P2中,包括已完成、未完成和正在进行的任务 我的文件是这样的: 我想要的结果是: 谢谢!!:) 使用Java 8 Streams功能,您可以按如下方式执行: Map<String, List<String>> byType = Files.lin

大家好,现在我正在做一项研究,我需要计算“已实现”、“未实现”和“正在进行”的发生率。我需要计算它,因为我的研究是关于马尔可夫决策过程的,我需要定义路径。因此,我需要将每个任务的结果计算到每个P1或P2中,包括已完成、未完成和正在进行的任务

我的文件是这样的:

我想要的结果是:


谢谢!!:)

使用Java 8 Streams功能,您可以按如下方式执行:

    Map<String, List<String>> byType =
            Files.lines(Paths.get("c:\\Temp\\markov.txt"), Charset.defaultCharset()).
                    collect(
                            Collectors.groupingBy(String::toString));

    byType.entrySet().stream().forEach(t -> System.out.println(t.getKey() + ":" + t.getValue().size()));

你试过什么吗?发帖。我从一开始就尝试发帖,因为有很多数据。我减去它们并插入到一个文件中,文件就是我发布的。我卡住了。抱歉,伙计。新编辑的回复符合你的要求吗?抱歉,伙计,这不是我想要的,谢谢!!!:)将找到其他方法来解决它!!:)不过,它确实能提供您想要的输出。少了什么?
a->P1-> achieve 7 times
a->P1-> Unachieved 2 times
a->P1-> On-going 1 time
a->P2-> achieve 8 times
........
........
    Map<String, List<String>> byType =
            Files.lines(Paths.get("c:\\Temp\\markov.txt"), Charset.defaultCharset()).
                    collect(
                            Collectors.groupingBy(String::toString));

    byType.entrySet().stream().forEach(t -> System.out.println(t.getKey() + ":" + t.getValue().size()));
a->P2-> Interrupted:1
a->P1-> Achieved:7
b->P1-> Interrupted:1
b->P2-> On-going:1
a->P1-> On-going:1
b->P1-> On-going:1
a->P2-> On-going:1
b->P2-> Interrupted:1
a->P1-> Interrupted:1
b->P2-> Achieved:8
b->P1-> Achieved:7
a->P2-> Achieved:8