如何在java中获得关联规则中每个项目的计数数?

如何在java中获得关联规则中每个项目的计数数?,java,arraylist,Java,Arraylist,我想得到每个项目的计数,包括这样的规则, A==>B,C,D B==>A,C C==>B 在这些规则中, 我想得到A=2,B=3,D=1,C=3 公共类MDSRRC{ 公共静态无效主字符串[]args引发FileNotFoundException{ //TODO自动生成的方法存根 File File=new FileC:\\sar.txt; Scanner sc=新的Scanner文件; Set leftSide=新哈希集; Set rightSide=新哈希集; 而sc.hasNextLine

我想得到每个项目的计数,包括这样的规则, A==>B,C,D B==>A,C C==>B

在这些规则中, 我想得到A=2,B=3,D=1,C=3

公共类MDSRRC{ 公共静态无效主字符串[]args引发FileNotFoundException{ //TODO自动生成的方法存根 File File=new FileC:\\sar.txt; Scanner sc=新的Scanner文件; Set leftSide=新哈希集; Set rightSide=新哈希集; 而sc.hasNextLine{ 字符串行=sc.nextLine; 字符串[]lineSplited=line.split==>; String[]leftStrings=lineSplited[0]。拆分,; 对于字符串:LeftString{ leftSide.addstring; } String[]rightStrings=lineSplited[1]。拆分; 对于字符串:RightString{ 如果string.length>0&&string.charAt0=={ 打破 } rightSide.addstring; } //System.out.printlnrightSide; } } }
当您计算每个字符时,不管它是在左侧还是右侧,您可以只使用一个结果结构。如果您只想知道发生的不同类型的字符,但还想知道计数,那么数据类型集很好,因此我建议将结果数据类型更改为映射,以便为每个字符保留一个计数器


因此,用一个地图实例替换左侧和右侧,对于遇到的每个角色,检查它是否已经存在于地图中。如果是,则在该条目的值部分添加一个,如果不是,则将新字符添加到值为1的地图中。

问题出在哪里?为什么要查找?你为什么要分开?为什么代码的格式没有适当的缩进,这样人们可以阅读和帮助你呢?你能解释更多的规则吗?解释可能会因人而异。我不清楚这些规则是什么意思。您能详细说明一下吗?规则是指数据挖掘中包含频繁项集的关联规则。例如,{Milk==>Bread}根据这个规则,顾客在超市买牛奶,同时也一起买面包。
    File file = new File("D:\\sar.txt");
    Scanner sc = new Scanner(file);
    Map<String, Integer> resultMap = new HashMap();

    while (sc.hasNextLine()) {
        String line = sc.nextLine();
        String[] lineSplited = line.split("==>");
        String first = lineSplited[0];
        resultMap.putIfAbsent(first, 0);
        resultMap.put(first, resultMap.get(first) + 1);
        String[] right = lineSplited[1].split(",");
        for (String a : right) {
            resultMap.putIfAbsent(a, 0);
            resultMap.put(a, resultMap.get(a) + 1);
        }
    }