手动实现一个list的常用功能
package com.pcxm.list; /**
* 手动实现一个list
* MyList
* @description TODO
* @author zhoum
* @date 2018年5月24日 下午4:51:39
* @version TODO
*/
public class MyList<T> {
private static Integer default_size = 10;
private static Integer arrSize = 0;
private static Object [] obs ;
public void add(T t){
//检查容量是否够
checheck(arrSize+1);
obs[arrSize++] = t;
}
//检查当前数组的容量是否够,如果不够,则替换新的数组
private static void checheck(int size) {
if(obs.length<size){
//先创建一个新数组
Object[] obj = new Object[size*2];
for (int i = 0; i < obs.length; i++) {
obj[i] = obs[i];
}
obs = obj;//替换为新的数组实现扩容
}
}
@SuppressWarnings("unchecked")
public T get(int index){
checkIndex(index);
return (T)obs[index];
}
private void checkIndex(int index){
if(index<0 || index>=arrSize){
throw new RuntimeException("数组索引不正确");
}
} public int size(){
return arrSize;
} public void remove(int index){
//先检查index是否在范围内
checkIndex(index);
//先看下是不是最后一位
int changNum = arrSize-index-1;
if(index==arrSize){
obs[index] = null;
}else{
System.arraycopy(obs, index+1, obs, index, changNum);
}
arrSize--; }
//初始化大小
public MyList() {
this(default_size);
}
public MyList(Integer default_size) {
if(default_size<0){
throw new RuntimeException("初始大小必需大于0");
}
obs = new Object[default_size];
} }
手动实现一个list的常用功能的更多相关文章
- [转]WebPack 常用功能介绍
概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...
- FastReport.Net 常用功能总汇
一.常用控件 文本框:输入文字或表达式 表格:设置表格的行列数,输入数字或表达式 子报表:放置子报表后,系统会自动增加一个页面,你可以在此页面上设计需要的报表.系统在打印处理时,先按主报表打印,当碰到 ...
- WebPack常用功能介绍
概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...
- TeeChart控件的安装与常用 功能设置
TeeChart控件的安装 TeeChart 7.0 With Source在Delphi 7.0中的安装 一.删除Delphi7自带TeeChart 1.Component -> insta ...
- 转: 尽己力,无愧于心 FastReport.Net 常用功能总汇
FastReport.Net 常用功能总汇 一.常用控件 文本框:输入文字或表达式 表格:设置表格的行列数,输入数字或表达式 子报表:放置子报表后,系统会自动增加一个页面,你可以在此页面上设计需要 ...
- fiddler抓包常用功能详解
一.基础部分: 1.设置代理ip及端口,tools --> telerik fiddler options --> connections -->勾选 “ Allow romote ...
- egret常用功能
egret常用功能<pre>//////////////////////////////////////////////////////////////////////////////// ...
- python轻量级orm框架 peewee常用功能速查
peewee常用功能速查 peewee 简介 Peewee是一种简单而小的ORM.它有很少的(但富有表现力的)概念,使它易于学习和直观的使用. 常见orm数据库框架 Django ORM peewee ...
- SpringBoot整合Redis实现常用功能
SpringBoot整合Redis实现常用功能 建议大小伙们,在写业务的时候,提前画好流程图,思路会清晰很多. 文末有解决缓存穿透和击穿的通用工具类. 1 登陆功能 我想,登陆功能是每个项目必备的功能 ...
随机推荐
- Android 键盘键名和键值列表
电话键 KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOME 按键Home 3 KEYCODE_MENU 菜单键 82 KEYCODE_BACK ...
- JavaScript入门学习笔记(JSON)
JSON是JavaScript Object Notation的简称,是一种轻量级的数据交换格式. JSON使用JS的语法,但其格式只是一个文本,可以被任何编程语言读取病作为数据格式传递. JSON以 ...
- 4337: BJOI2015 树的同构
题解: 树的同构的判定 有根树从根开始进行树hash 先把儿子的f进行排序 $f[i]=\sum_{j=1}^{k} { f[j]*prime[j]} +num[i]$(我没有仔细想这样是不是树是唯一 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-1项目说明
https://www.bug2048.com/netcore20180313/ 最近公司的一个小项目尝试使用 .net core作为服务端进行开发,并顺利上线运行了一段时间,整体效果还是比较满意的. ...
- Maya cmds pymel scriptJob() 和 undoInfo() 在回调中撤销(undo)
Maya cmds pymel scriptJob() 和 undoInfo() 在回调中撤销(undo) def myEventFun(): cmds.undoInfo(stateWithoutFl ...
- Django & JavaScript 用Ajax实现JSON数据的请求和响应
[描述] 1.Server端定义了两个字段:Article.title 和 Article.content 2.客户端用JavaScript Ajax异步加载请求服务器的JSON数据 效果是点击按钮从 ...
- gdb解决字符串打印果断措施
在我们进行gdb动态调试的时候,很多时间可能会遇到无法完全显示的情况 关于这种方法网上已经有解决方法 https://blog.csdn.net/shuizhizhiyin/article/detai ...
- 解读vscode断点调试配置文件【待续】
一.参考链接 https://code.visualstudio.com/Docs/editor/debugging https://code.visualstudio.com/docs/nodejs ...
- [POJ1220]NUMBER BASE CONVERSION (高精,进制转换)
题意 任意进制之间的高进的转换 思路 相模倒排,高精处理 代码 我太弱了,下面附一个讨论里发的maigo思路的代码 ],A[]; ],d[]; main(){ for(scanf("%d&q ...
- 排序算法的复习和总结[PHP实现]
对于PHP中对数组的元素进行排序,这个是很经常用到的,之前的项目中也有,而且对于几种排序我们都是用的是asort arsort 等PHP原生函数,没有自己去实现,所以就对一下的几个函数进行总结,这个 ...