自己写的小集合类

来源:互联网 发布:https的默认端口是 编辑:程序博客网 时间:2024/06/05 06:57

java 集合 collection 可以封装不同类型的对象,也可以根据泛型封装指定类型的对象。写个简单的自己的小集合。

package Demo;import java.util.Arrays;public class Demo<T>{    private Object[] demo_data;    private int forInt = 0;    //定义初始化集合长度    public Demo(int intSize)    {        demo_data = new Object[intSize];    }    public Demo(){}    /**     * 添加数据     * @param     * T data 需要添加的数据     * */    public void add(T data)    {        forInt++;        if(demo_data == null)        {            demo_data = new Object[1];        }        if(demo_data.length < forInt)        {            Object[] objs = Arrays.copyOf(demo_data, demo_data.length);            demo_data = new Object[demo_data.length + 1];            System.arraycopy(objs, 0, demo_data, 0, objs.length);        }        demo_data[forInt-1] = data;    }    /**     * 获取数据     * @param     * int index     * @Return     * T 数据     * */    public T get(int index)    {        return (T)demo_data[index];    }    /**     * dump 出该集合     * */    public void dump()    {        System.out.println("size : " + size());        for(int i=0;i<demo_data.length;i++)        {            Object str = demo_data[i];            if(str instanceof String)            {                System.out.print("type : String     ");            }            if(str instanceof Integer)            {                System.out.print("type : Integer     ");            }            if(str instanceof Long)            {                System.out.print("type : Long     ");            }            System.out.println("index : " + i  + "    value : " + str);        }    }    /**     * 获取该集合长度     * @return     * int 该集合长度     * */    public int size()    {        return demo_data.length;    }    /**     * 是否包含该对象     * @param     * T conta 需要检测的对象     * @return      * boolen 是否包含该对象     * */    public boolean contains(T conta)    {        for(Object obj : demo_data)        {            if(obj.equals(conta))            {                return true;            }        }        return false;    }    /**     * 删除某个对象,删除后向前移走。     * @param     * T 需要删除的对象     * */    public void remove(T obj)    {        int arrSize = demo_data.length - 1,beginSize = 0;        Object[] demo_objs = new Object[arrSize];        for(Object project : demo_data)        {            if(!project.equals(obj))            {                if(beginSize > arrSize - 1)                {                    return;                }                demo_objs[beginSize] = project;                beginSize++;            }        }        demo_data = demo_objs;    }}
package Index;import java.util.List;import java.util.Collections;import java.util.ArrayList;import Demo.Demo;import Demo.A;public class Index {    public static void main(String[] args)    {        //index1();        //index2();        //index3();        index4();    }    public static void index1()    {        Demo<String> demo = new Demo<String>();        demo.add("我是谁");        demo.add("我是勇哥");        demo.add("我的名字是不是很帅呀");        demo.dump();        System.out.println("--------------------------------------------------------------------------------");        System.out.println(demo.get(2));    }    public static void index2()    {        Demo<String> demo1 = new Demo<String>(3);        System.out.println("size : " + demo1.size());        demo1.add("1");        demo1.add("2");        demo1.add("3");        demo1.add("4");        demo1.dump();        System.out.println(demo1.contains("1"));    }    public static void index3()    {        List<A> list = new ArrayList<A>();        A a1 = new A();        A a2 = new A();        //System.out.println(a1+ "             " + a2);        list.add(a1);        list.add(a2);        System.out.println(list.contains(new A()));    }    public static void index4()    {        Demo<String> demo1 = new Demo<String>(3);        demo1.add("1");        demo1.add("2");        demo1.add("3");        demo1.add("4");        //demo1.dump();        demo1.remove("3");        demo1.dump();    }}
0 0