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();
}
}