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(); } }