一、通过数组模拟编写动态数组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
推荐阅读
- 人工智能|干货!人体姿态估计与运动预测
- 分析COMP122 The Caesar Cipher
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 数据结构与算法|【算法】力扣第 266场周赛
- 数据结构和算法|LeetCode 的正确使用方式
- leetcode|今天开始记录自己的力扣之路
- 人工智能|【机器学习】深度盘点(详细介绍 Python 中的 7 种交叉验证方法!)
- 网络|简单聊聊压缩网络