⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 element.java

📁 序列模式分析算法GSP的实现 GSP是序列模式挖掘的一种算法。其主要描述如下: l 根据长度为i 的种子集Li 通过连接操作和剪切操作生成长度为i+1的候选序列模式Ci+1;然后扫描序列数据
💻 JAVA
字号:
package gsp;


import java.util.ArrayList;


 


/**

 * <title>元素(项目集)类</title>

 * 元素信息和操作类,将项目集作为该实例的属性

 * 本类封装了对于项目集的基本操作

 * @author guangqingzhong

 *

 */

public class Element {

    private ArrayList<Integer> itemset;//表示该元素的项目,按数字的升序存放

    

    /**

     * 无参数构造方法

     * 初始化项目集

     *

     */

    public Element() {

        this.itemset=new ArrayList<Integer>();

    }

    

    /**

     * 带参数构造方法

     * 初始化项目集,即将参数中的项目集拷贝过来

     * @param items         项目集

     */

    public Element(int [] items){

        this.itemset=new ArrayList<Integer>();

        for(int i=0;i<items.length;i++){
       // 	System.out.println(items[i]);
            this.addItem(items[i]);
         //   System.out.println(this.toString());

        }

    }

    

    /**

     * 添加项目

     * 添加项目到项目集中

     * @param item         被添加的项目

     */

    public void addItem(int item){

        int i;

        for(i=0;i<itemset.size();i++){

            if(item<itemset.get(i)){
                break;

            }

        }
        itemset.add(i,item);

    }

    

    /**

     * 获得项目集

     * @return     项目集

     */

    public ArrayList<Integer> getItems(){

        return this.itemset;

    }

    

    /**

     * 获取最后一个位置的项目

     * @return         项目

     */

    public int getLastItem(){

        if(this.itemset.size()>0){

            return itemset.get(itemset.size() - 1);

        }

        else{

            System.err.println("空元素错误,Element.getLastItem()");

            return 0;

        }

    }


 


    /**

     * 本方法判断本元素是不是包含于元素e中

     * @param e           元素

     * @return            true--是 false--否

     */

    public boolean isContainIn(Element e){

        if(this.itemset.size()>e.itemset.size()){//如果两个元素大小不同,则为不相等

            return false;

        }

        int i=0,j=0;

        while(j<e.size() && i<this.itemset.size() ){

            if(this.itemset.get(i).intValue() == e.itemset.get(j).intValue()){

                i++;j++;

            }else{

                j++;

            }

        }

        if(i==this.itemset.size()){

            return true;

        }else{

            return false;

        }

    }

    

    /**

     * 获取去除第一个项目外的元素

     * @return          元素

     */

    public Element getWithoutFistItem(){

        Element e=new Element();

        for(int i=1 ;i<this.itemset.size();i++){

            e.addItem(this.itemset.get(i).intValue());

        }

        return e;

    }

    

    /**

     * 获取去除最后一个项目外的元素

     * @return            元素

     */

    public Element getWithoutLastItem(){

        Element e=new Element();

        for(int i=0 ;i<this.itemset.size()-1;i++){

            e.addItem(this.itemset.get(i).intValue());

        }

        return e;

    }

    

    /**

     * 删除项目

     * 项目位置i上的项目

     * @param i        位置序号

     * @return         

     */

    public int removeItem(int i){

        if(i<this.itemset.size()){

           return this.itemset.remove(i).intValue();

        }

        System.err.println("无效的索引!");

        return -1;

    }

    

    /**

     * 比较两个元素的大小

     * 将传递过来的参数o与本对象比较

     * @param o           被比较的元素

     * @return            int -- -1 本元素小于参数  1 本元素大于参速

     */

     public int compareTo(Object o){

         Element e=(Element)o;

         int r=0;

         int i=0,j=0;

         while(i<this.itemset.size() && j<e.itemset.size()){

            if(this.itemset.get(i).intValue() < e.itemset.get(j).intValue()){

                r=-1;//本element小于e

                break;

            }else{

                if(this.itemset.get(i).intValue() > e.itemset.get(j).intValue()){

                    r=1;//本element大于e

                    break;

                }

            }

            i++;j++;//项目相同,都指向下一个项目

         }

         if(r==0){//如果目前还没有比较出谁大谁小的话

             if(this.itemset.size()>e.itemset.size()){

                 r=1;

             }

             if(this.itemset.size()<e.itemset.size()){

                 r=-1;

             }

         }

         return r;

    }

     

    /**

     * 获取项目集的大小

     * @return      int--大小

     */

    public int size(){

        return this.itemset.size();

    }

    

    /**

     * 元素拷贝方法

     * 拷贝项目集

     */

    public Element clone(){

        Element clone=new Element();

        for(int i:this.itemset){

            clone.addItem(i);

        }

        return clone;

    }


 


    /**

     * 下判断两个元素是否相同

     * @param o           

     * @return  true--相同 false--不同

     */

    public boolean equalsTo(Object o){

       boolean equal=true;

       Element e=(Element)o;

       if(this.itemset.size()!=e.itemset.size()){//如果两个元素大小不同,则为不相等

           equal=false;

       }

       for(int i=0;equal && i<this.itemset.size();i++){

           if(this.itemset.get(i).intValue()!=e.itemset.get(i).intValue()){

               equal=false;

           }

       }

       return equal;

   }


 


    /**

     * 重写toString()

     * 用于输出时的字符处理

     */

    public String toString(){

        StringBuffer s=new StringBuffer();

        if(this.itemset.size()>1){

            s.append("(");

        }

        for(int i=0;i<this.itemset.size();i++){

            s.append(this.itemset.get(i).intValue());

            if(i<this.itemset.size()-1){

                s.append(",");

            }

        }

        if(this.itemset.size()>1){

            s.append(")");

        }

        return s.toString();

    }


 


    

}

⌨️ 快捷键说明

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