Anda di halaman 1dari 4

package com.

rst;
import java.io.IOException;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
//import java.util.Collection;
import java.util.Collections;
import com.com.prefixspan.main.Execute;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
public class Rst {
static ArrayList<ArrayList> urls = new ArrayList<ArrayList>();
static ArrayList intersection = new ArrayList();
static float jacobian[][] = new float[100][100];
static int i = 0, j = 0, k = 0;
static int tno = 1;
static int check[] = new int[100];
static ArrayList jac;
static ArrayList<ArrayList> jacmain = new ArrayList<ArrayList>();
static ArrayList jac1=new ArrayList<>();
static ArrayList<ArrayList> jacmain1 = new ArrayList<ArrayList>();
private static String sequence[]= {"a","abc","ac","d","cf","ad","c","bc"
,"ae","ef","ab","df","c","b","e","g","af","c","b","c"};
static ArrayList rows=new ArrayList();
static ArrayList<ArrayList> cluster1=new ArrayList<ArrayList>();
public void rst_call(ArrayList<ArrayList> urls2) throws SQLException, ClassNotFo
undException, IOException{
Class.forName("com.mysql.jdbc.Driver");
Connection con=(Connection) DriverManager.getConnection("jdbc:mysql://lo
calhost:3306/preprocessing","root","");
//
for(int i=0;i<sequence.length;i++){
//
ArrayList<String> row=new ArrayList<>();
//
for(int j=0;j<sequence[i].length();j++){
//
row.add(Character.toString(sequence[i].charAt(j)));
//
}
//
urls2.add(row);
//
}
System.out.println("urls at first "+urls2);
for (int i = 0; i < urls2.size(); i++) {
for (int j = 0; j < urls2.size(); j++) {
intersection.addAll(urls2.get(i));
intersection.retainAll(urls2.get(j));
union(urls2.get(i), urls2.get(j));
System.out.println("check" + urls2.get(i) + " " + urls2.
get(j));
System.out.println(inter(urls2.get(i), urls2.get(j)));
System.out.println("Intersection " + intersection.size()
+ " union " + (union(urls2.get(i), urls2.get(j)).size()) + " " + i + " "+ j);
jacobian[i][j] = ((float) (inter(urls2.get(i), urls2.get
(j))).size() / (float) union(urls2.get(i), urls2.get(j)).size());
// System.out.println("Jacobian "+jacobian[i][j]);
intersection.clear();
}
// jac.clear();

}
for (int i = 0; i < urls2.size(); i++) {
jac = new ArrayList();
for (int j = 0; j < urls2.size(); j++) {
if (jacobian[i][j] >= 0.4) {
jac.add(j);
System.out.println("jac" + jac);
}
}
Collections.sort(jac);
jacmain.add(jac);
}
urls2.remove(rows);
System.out.println("jacmain" + jacmain);
System.out.println("Clusters"+createClusters(jacmain));
jacmain1.addAll(createClusters(jacmain));
int check=0,list=0;
while(check!=1)
{
ArrayList<ArrayList> cluster=new ArrayList<ArrayList>();
cluster.addAll(createClusters(jacmain1));
if(cluster.get(0).equals(jacmain1.get(0))&& cluster.get(1).equal
s(jacmain1.get(1)))
check=1;
jacmain1.clear();
jacmain1.addAll(cluster);
cluster.clear();
}
for(int i=0;i<jacmain1.size();i++){
ArrayList a2=new ArrayList();
ArrayList a1=new ArrayList();
a1.addAll(jacmain1.get(i));
if(!(cluster1.contains(jacmain1.get(i)))){
a2.addAll(a1);
cluster1.add(a2);
}
}
ArrayList<ArrayList> cluster=new ArrayList<ArrayList>();
System.out.println("Final Cluster is "+cluster1);
for(int i=0;i<cluster1.size()-1;i++){
Collections.sort(cluster1.get(i));
System.out.println("clusterrrr "+cluster1.get(i));
}
for(int i=0;i<cluster1.size();i++){
for(int j=0;j<cluster1.size();j++){
if(j==i){}
else{
if(cluster1.get(i).equals(cluster1.get(j)))
cluster1.remove(cluster1.get(j));
}
}
}
System.out.println("revised cluster "+cluster1);
for (int i = 0; i < jacobian.length; i++) {
for (int j = 0; j < jacobian[i].length; j++) {
System.out.print(jacobian[i][j] + " ");

}
System.out.println(" ");
}
ArrayList<ArrayList<String>> col=new ArrayList<>();
ArrayList<ArrayList<Integer>> count_col=new ArrayList<>();
for(int i=0;i<cluster1.size();i++){
ArrayList<String> row=new ArrayList<>();
ArrayList<Integer> count_col_inner=new ArrayList<>();
for(int j=0;j<cluster1.get(i).size();j++){
String query="select url from preprocessing where tnumbe
r="+cluster1.get(i).get(j)+" order by tnumber";
String query1="select count(url) from preprocessing wher
e tnumber="+cluster1.get(i).get(j);
Statement stmt=(Statement) con.createStatement();
Statement stmt1=(Statement) con.createStatement();
ResultSet rs=stmt.executeQuery(query);
ResultSet rs1=stmt1.executeQuery(query1);
while(rs1.next()){
count_col_inner.add(rs1.getInt(1));
}
while(rs.next()){
row.add(rs.getString(1));
}
}
count_col.add(count_col_inner);
col.add(row);
}
System.out.println("col "+col);
System.out.println(count_col);
//
ArrayList<Integer> count_col=new ArrayList<>();
//
for(int i=0;i<cluster1.size();i++){
//
count_col.add(col.get(i).size());
//
}
//
Execute exe=new Execute();
//
for(int i=0;i<col.size();i++)
//
exe.exec(col.get(i),count_col.get(i));
}
public static ArrayList<String> union(ArrayList<String> a1, ArrayList<String> a2
) {
ArrayList<String> unionlist = new ArrayList<String>();
for (int i = 0; i < a1.size(); i++) {
if (!(unionlist.contains(a1.get(i))))
unionlist.add(a1.get(i));
}
for (int j = 0; j < a2.size(); j++) {
if (!(unionlist.contains(a2.get(j))))
unionlist.add(a2.get(j));
}
return unionlist;
}
public static ArrayList inter(ArrayList a1, ArrayList a2) {
ArrayList interlist = new ArrayList();
// for(int i=0;i<a1.size();i++)
// {
// if(!(interlist.contains(a1.get(i))))
// interlist.add(a1.get(i));
// }
for (int j = 0; j < a2.size(); j++) {

if ((a1.contains(a2.get(j))) && (!interlist.contains(a2.get(j)))


)
interlist.add(a2.get(j));
}
return interlist;
}
public static ArrayList createClusters(ArrayList<ArrayList> a1) {
System.out.println("a1 "+a1.get(0));
ArrayList<ArrayList> a2=new ArrayList<ArrayList>();
a2.addAll(a1);
for(int i=0;i<a1.size();i++)
{
for(int j=0;j<a1.size();j++)
{
if((inter(a2.get(i),a2.get(j)).size()!=0))
{
if(!(a2.get(i).contains(j)))
{
a2.get(i).add(j);
System.out.println("this is a2"+
a2.get(i));
}
}
}
}
return a2;
}
}

Anda mungkin juga menyukai