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 + -
显示快捷键?