bucket.java

来自「基于hash技术的关联规则挖掘」· Java 代码 · 共 224 行

JAVA
224
字号
import java.awt.*;
import java.util.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.*;

public class bucket
{
   public LinkedList[] vec_Main=null;
   public LinkedList[] vec_Main2=null;
   public LinkedList[] vec_Main3=new LinkedList[7];
   public LinkedList vec_store=new LinkedList();
   public LinkedList vec_finalStore=new LinkedList();
   public Hashtable ht=new Hashtable();
   public Hashtable ht2=new Hashtable();
   public static boolean flag=true;
   public static boolean flag2=true;
   public static boolean flag3=true;
   public String[] str_array=null;

   public bucket(String[] args)
   {
      vec_Main=new LinkedList[args.length];
      vec_Main2=new LinkedList[args.length];
      str_array=new String[args.length];
      for(int i=0;i<args.length;i++)
      {
         str_array[i]=args[i];
      }
      for(int i=0;i<args.length;i++)
      {
         vec_Main[i]=new LinkedList();
         init_bucket(str_array[i].toCharArray(),i);
      }
      ht2.put("a",new Integer(1));
      ht2.put("b",new Integer(2));
      ht2.put("c",new Integer(3));
      ht2.put("d",new Integer(4));
      ht2.put("e",new Integer(5));
   }
   public void init_bucket(char[] temp,int k)
   {
      for(int i=0;i<temp.length;i++)
      {
         vec_Main[k].add(new Character(temp[i]));
      }
   }
   public void countElem()
   {
      int num=0;
      for(int i=0;i<vec_Main.length;i++)
      {
         LinkedList vec_subMain=vec_Main[i];
         for(int i2=0;i2<vec_subMain.size();i2++)
         {
            Character temp=(Character)vec_subMain.get(i2);
            for(int k=0;k<vec_store.size();k++)
            {
               Character cha=(Character)vec_store.get(k);
               if(temp.charValue()==cha.charValue())
               {
                  flag=false;
                  break;
               }
            }
            if(flag==true)
            {
               vec_store.add(temp);
               num=0;
               for(int i3=0;i3<vec_Main.length;i3++)
               {
                  LinkedList vec_subMainCompared=vec_Main[i3];
                  for(int i4=0;i4<vec_subMainCompared.size();i4++)
                  {
                     Character cha2=(Character)vec_subMainCompared.get(i4);
                     if(temp.charValue()==cha2.charValue())
                     {
                        num++;
                     }
                  }
               }
               ht.put(new Character(temp.charValue()),new Integer(num));
            }// end if
            flag=true;
         }//end vec_subMain
      }//end vec_Main
      printFirst();
   }
   public void kitType()
   {
      for(int i=0;i<vec_Main.length;i++)
      {
         vec_Main2[i]=new LinkedList();
         for(int i2=0;i2<vec_Main[i].size();i2++)
         {
            for(int i3=i2+1;i3<vec_Main[i].size();i3++)
            {
               String temp1=((Character)vec_Main[i].get(i2)).toString();
               String temp2=((Character)vec_Main[i].get(i3)).toString();
               vec_Main2[i].add(temp1+temp2);
            }
         }
      }
      printSecond();
   }
   public void doHash()
   {
      for(int i=0;i<7;i++)
      {
         vec_Main3[i]=new LinkedList();
      }
      for(int i=0;i<vec_Main2.length;i++)
      {
         for(int i2=0;i2<vec_Main2[i].size();i2++)
         {
            String temp=(String)vec_Main2[i].get(i2);
            char[] cha_array=temp.toCharArray();
            Character cha=new Character(cha_array[0]);
            Character cha2=new Character(cha_array[1]);
            Integer int_x=(Integer)ht2.get(cha.toString());
            Integer int_y=(Integer)ht2.get(cha2.toString());
            int x=int_x.intValue();
            int y=int_y.intValue();
            int h=(x*10+y)%7;
            vec_Main3[h].add(vec_Main2[i].get(i2));
         }
      }
      printThird();
   }
   public void filterHash()
   {
      for(int i=0;i<vec_Main3.length;i++)
      {
         for(int i2=0;i2<vec_Main3[i].size();i2++)
         {
            String temp=(String)vec_Main3[i].get(i2);
            for(int i3=i2+1;i3<vec_Main3[i].size();i3++)
            {
               if(temp.equals(vec_Main3[i].get(i3)))
               {
                  for(int i4=0;i4<vec_finalStore.size();i4++)
                  {
                     String s=(String)vec_finalStore.get(i4);
                     if(temp.equals(s))
                     {
                        flag2=false;
                     }
                  }
                  if(flag2==true)
                  {
                     vec_finalStore.add(temp);
                     break;
                  }
                  flag2=true;
                  break;
               }//end if
            }//end for
         }
      }
      printForth();
   }
   public void printFirst()
   {
      System.out.println("[支持度]:");
      System.out.println(ht.toString());
      System.out.println();
   }
   public void printSecond()
   {
      System.out.println("[配对结果]:");
      for(int i=0;i<vec_Main2.length;i++)
      {
         for(int i2=0;i2<vec_Main2[i].size();i2++)
         {
            System.out.print(((String)vec_Main2[i].get(i2)).toString()+" ");
         }
         System.out.println();
      }
      System.out.println();
   }
   public void printThird()
   {
      System.out.println("[散列结果]:");
      for(int i=0;i<vec_Main3.length;i++)
      {
         System.out.print("散列表的第 "+i+" 号存储区:"+"   ");
         for(int i2=0;i2<vec_Main3[i].size();i2++)
         {
            System.out.print(((String)vec_Main3[i].get(i2)).toString()+" ");
         }
         System.out.println();
      }
      System.out.println();
   }
   public void printForth()
   {
      System.out.println("[频繁集结果为]:");
      for(int i=0;i<vec_finalStore.size();i++)
      {
         String temp=(String)vec_finalStore.get(i);
         System.out.println(temp);
      }
      System.out.println();
   }
   public void printInit()
   {
      System.out.println("[初始输入集为]:");
      for(int i=0;i<str_array.length;i++)
      {
         System.out.println(str_array[i]);
      }
      System.out.println();
   }
   public static void main(String[] args)
   {
      bucket buc=new bucket(args);
      buc.printInit();
      buc.countElem();
      buc.kitType();
      buc.doHash();
      buc.filterHash();
      return;
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?