Java学习记录|创建自己的集合类并扩展功能
2020-03-28 20:15
134 查看
创建自己的集合类MyArrayList并定义基础功能
(类似简单版本的ArrayList类)
- 定义数组
- 定义数组的索引
- 定义添加数据的add方法
- 定义获得数据的get方法
- 定义获得数据的长度
public class MyArrayList { private int[] dataArray=new int[100]; //定义数组进行存储,长度为100 private int index=0;//指向数组中的空位置 public void add(int data){//定义一个添加数据的add方法 dataArray[index]=data; index++; } public int get(int index) { if (index >= 0 && index <= (this.index - 1)) {//this.index返回成员变量 return dataArray[index]; } else { //index不存在 System.out.print("你给的索引" + index + "不存在"); return -1; } } public int size(){ return index;//index会自增 } }
测试:
增加数据
获得数据
遍历数组
public class test { public static void main(String[] args) { MyArrayList list=new MyArrayList(); list.add(100);//只能放int类型的数据 list.add(12); list.add(122); list.add(32); System.out.print(list.get(1));//get方法定义好之后可以使用 System.out.print(list.get(5));//get方法中索引不存在的情况 //遍历数组 for(int i=0;i<list.size();i++){ System.out.print(list.get(i)+" "); } } }
缺点:只能存储int类型
解决:泛型处理
T类型的引入
public class MyArrayList<T>{//Type Integer String Student... private T[] dataArray=(T[])new Object[100];//Object是所有类型的父类,存储任意类型数组,再把数组强制转成T类型 private int index=0;//指向数组中的空位置 public void add(T data){//定义一个添加数据的add方法 dataArray[index]=data; index++; } public T get(int index) { if (index >= 0 && index <= (this.index - 1)) {//this.index返回成员变量 return dataArray[index]; } else { //index不存在 System.out.print("你给的索引" + index + "不存在"); return null; } } public int size(){ return index;//index会自增 } }
测试:
public class test { public static void main(String[] args) { MyArrayList<Integer> list=new MyArrayList<Integer>();//泛型 list.add(100);//只能放int类型的数据 list.add(12); list.add(122); list.add(32); System.out.println(list.get(1));//get方法定义好之后可以使用 System.out.print(" "); System.out.println(list.get(5));//get方法中索引不存在的情况 //遍历 for(int i=0;i<list.size();i++){ System.out.print(list.get(i)+" "); } } }
学习来源:【bilibili siki学院】
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 今天创建了CSDN博客,用于记录自己的学习经历
- Java源码集合类TreeMap学习1——数据结构4平衡二叉树创建代码
- 【java学习记录】13.实现简单的浏览器功能:获取源代码、保存源代码、获取图片
- java框架学习,记录一下,给自己一个动力
- Javaweb学习阶段总结(一)【IDEA_JAVA-WEB工程创建;入门Java-web工程(含数据库)的框架结构;网页用户注册功能实现代码】
- java提供功能创建自己的api文档
- Android(java)学习笔记204:自定义SmartImageView(继承自ImageView,扩展功能为自动获取网络路径图片)
- 黑马程序员-自己总结的java学习笔记(6)集合类
- Python实现日志自动记录功能(一个思路代码,详细可以自己扩展)
- 第二次记录,自己的学习Java中的小趣事。
- 记录一下自己的java学习历程
- 开个BLOG,记录一下自己的JAVA学习
- 本博客纯粹记录自己的java,Android学习过程
- Java与数据库的结合,应用实例。以学生表、选课表为例。可以自己扩展功能。
- 【java学习记录】6.创建一个桌子Table类,计算桌面面积并在屏幕上输出所有成员的值
- Java源码集合类TreeMap学习1——数据结构3二叉树创建代码
- 就记录一下自己学习Java的进程
- 学习记录自己对java boolean 类型的理解
- JAVA 学习随笔记录 (八)泛型与集合类