• 概念格算法实现java


    import java.io.*;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    
    public class read1 {
        public static void main(String[] args) throws IOException{
            String file = "/home/ja/CADATA/mushroom_fp_threshold50.1";
            FileReader fr = new FileReader(new File(file));
            BufferedReader bf = new BufferedReader(fr);
            List<Map<List<String>,Integer>> list = new ArrayList<Map<List<String>,Integer>>();
            String line = null;
            while((line = bf.readLine()) != null){
                Map<List<String>,Integer> map = new HashMap<List<String>,Integer>();
                if(line.trim() != ""){
                    List<String> l = new ArrayList<String>();
                    String[] str = line.split(":",2);
                    String[] tmpstr = str[0].trim().split(" ");
                    for (String string : tmpstr) {
                        l.add(string.trim());
                    }
                    int tmp = Integer.parseInt(str[1].trim());
                    map.put(l,tmp);
                }
                list.add(map);
            }
            
            
            for(int i=0;i<list.size();i++){
                //System.out.println(list.get(i));
            }
            
            int sizes = list.get(list.size()-1).entrySet().iterator().next().getKey().size();
    
            List<List<Map<List<String>,Integer>>> result = new ArrayList<List<Map<List<String>,Integer>>>();
            
            int k = 1;
            
            while(k <= sizes){
                List<Map<List<String>,Integer>> tmp = new ArrayList<Map<List<String>,Integer>>();
                for(int j=0;j<list.size();j++){
                    if(list.get(j).entrySet().iterator().next().getKey().size() == k){
                        tmp.add(list.get(j));
                    }
                }
                k++;
                result.add(tmp);
            }
            
            for(int t=0;t<result.size()-1;t++){
                for(int j=0;j<result.get(t+1).size();j++){
                    for(int i=0;i<result.get(t).size();i++){
                        if(result.get(t+1).get(j).entrySet().iterator().next().getKey().containsAll(result.get(t).get(i).entrySet().iterator().next().getKey()) 
                                && result.get(t+1).get(j).entrySet().iterator().next().getValue() == result.get(t).get(i).entrySet().iterator().next().getValue()){
                            result.get(t).remove(i);
                            i--;
                        }
                        //System.out.println(result.get(0).get(i).entrySet().iterator().next().getKey() + ":" + result.get(0).get(i).entrySet().iterator().next().getValue());
                        //System.out.println(result.get(1).get(j).entrySet().iterator().next().getKey() + "\\" + result.get(1).get(j).entrySet().iterator().next().getValue());
                    }
                }
            }
            
            
            for(int i=0;i<result.size();i++){
                System.out.println(result.get(i).size() + "---" + result.get(i));
            }
            
            System.out.println();
        }
    }
  • 相关阅读:
    vim讲解
    tar常用解包
    linux扩展权限
    为Virtualbox中的Solaris10安装VBoxAdditions
    Solaris10下Telnet、SSH、ftp使用root登录
    linux软链接和硬链接
    curl命令学习(转载的)
    linux磁盘分区fdisk命令详解
    在服务器上排除问题的头五分钟
    Java对文件压缩/加密/解密/解压缩的例子,DES/RSA
  • 原文地址:https://www.cnblogs.com/wn19910213/p/3575045.html
Copyright © 2020-2023  润新知