java编程题之自定义动态数组

一、通过数组模拟编写动态数组List的操作(不用面向对象的思想)

  • 运用方法的返回和重创建进行动态数组的实现(Arrays.java)
package com.ucai.task6; /** * 数据模拟类,不通过面向对象的思想 * @author F * */ public class Arrays { /** * 向模拟的动态数组中添加数据,初始化可有值,也可为null或者传入长度为0的数组, * 循环添加数据,并打印添加的结果 */ public static void testArrays(int start,int end) { int[] arrays = null; for (; start < end; start++) { arrays = arrays(arrays, start); } for (int i=0; i

二、通过面向对象模拟List集合,底层还是使用数组
  • 一个简单的动态集合的编写,像List中的什么迭代器,还是其他的方法,没有做,只做了一个add、get、remove方法(Array.java)
package com.ucai.task6; public class Array { /** * 定义一个自定义类型的数组,外部传入什么类型的数据,数据就是什么类型 */ private T[]ts; /** * 初始化一个长度为0的数组 */ @SuppressWarnings("unchecked") public Array(){ts = (T[])new Object[0]; } /** * 获取数组中某一个元素的值,根据数组角标 * @param arg * @return */ public T get(int arg) { returnts[arg]; } /** * 获取数组的长度 * @return */ public int size(){ return ts.length; } /** * 向数组中添加一个元素 * @param t */ @SuppressWarnings("unchecked") public void add(T t){ T[] array = (T[])new Object[this.size()+1]; for(int i=0; i

    推荐阅读