自己写的小集合类
来源:互联网 发布: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
- 自己写的小集合类
- 学生信息的小集合
- 小集合
- 我喜欢的电影小集合
- Java的全局变量争议小集合
- JS代码小集合
- JS代码小集合
- JS代码小集合
- JS代码小集合
- JS代码小集合
- js代码小集合
- JS代码小集合
- JS代码小集合
- 中国俗语小集合~
- SEH资料小集合
- js小集合
- Myeclipse 快捷键小集合
- JS代码小集合
- 初探hadoop,hadoop大数据平台初次搭建经验
- php采集神器cURL使用方法详解
- 导航栏选择器
- 多维双曲方程
- forward和redirect的区别
- 自己写的小集合类
- 开通了csdn博客
- MongoDB 查询文档(一)
- Windows服务器性能监控脚本(powershell)
- scp远程拷贝文件及文件夹(linux)
- 解压版mysql的安装配置与设置密码
- android 控件放大变大动画
- 如何使WINCE上控件透明,并且不透到桌面
- spark 2.1 spark-shell Startup Process