自己写的小集合类

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值