Java中SJBArrayList自己简单实现ArrayList
/**
* 自己实现ArrayList
* @author zyyt
*
*/
public class SJBArrayList {
//存放SJBArrayList中的元素
transient Object[] elementData;
//SJBArrayList中含有多少个元素
private int size;
//构造方法
public SJBArrayList(){
this(10);
}
public SJBArrayList(int initialCapacity)
{ //对elementData进行初始化
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity];
} else if (initialCapacity == 0) {
this.elementData = new Object[0];
} else {
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
}
}
//判断这个SJBArrayList是否包含元素,如果不包含元素返回true 如果包含则返回false
public boolean isEmpty(){
return size == 0;
}
//返回这个SJBArrayList中包含的元素的个数
public int size(){
return size;
}
//添加一个元素
public void add(Object obj)
{
if(size == elementData.length){
Object[] array = new Object[size * 2 +1];
System.arraycopy(elementData, 0, array, 0, elementData.length);
elementData = array;
}
elementData[size++] = obj;
}
//获取对应索引中的元素
public Object get(int index){
if(index<0 || index >= size){
System.out.println("index超过最大索引值或者index小于0");
return null;
}
return elementData[index];
}
//删除对应索引的值
public Object remove(int index){
if(index < 0 || index > size){
System.out.println("index小于0,或者越界");
System.exit(0);
}
Object oldValue = this.get(index);
System.arraycopy(elementData, index + 1,elementData, index, size);
elementData[size--] = null;
return oldValue;
}
//提货对应索引中的值
public Object set(int index,Object obj)
{
if(index < 0 || index > size){
System.out.println("index小于0,或者越界");
System.exit(0);
}
Object oldValue = this.get(index);
elementData[index] = obj;
return oldValue;
}
//清空SJBArrayList
public void clear(){
for(int i=0;i<size;i++){
elementData[i] = null;
}
size = 0;
}
public static void main(String[] args){
SJBArrayList sjbList = new SJBArrayList();
sjbList.add("111");
sjbList.add("2222");
sjbList.add("3333");
sjbList.add("4444");
sjbList.add("5555");
sjbList.add("66666");
sjbList.remove(2);
System.out.println(sjbList.get(3));
for(int i=0;i<sjbList.size();i++){
System.out.println(sjbList.get(i));
}
}
}
Java中SJBArrayList自己简单实现ArrayList的更多相关文章
- java中把list列表转为arrayList以及arraylist数组截取的简单方法
java中把list列表转为arrayList以及arraylist数组截取的简单方法 package xiaobai; import java.util.ArrayList; import java ...
- 在Java中怎样把数组转换为ArrayList?
翻译自:How to Convert Array to ArrayList in Java? 本文分析了Stack Overflow上最热门的的一个问题的答案,提问者获得了很多声望点,使得他得到了在S ...
- 多线程(三) java中线程的简单使用
java中,启动线程通常是通过Thread或其子类通过调用start()方法启动. 常见使用线程有两种:实现Runnable接口和继承Thread.而继承Thread亦或使用TimerTask其底层依 ...
- java中数据流的简单介绍
java中的I/O操作主要是基于数据流进行操作的,数据流表示了字符或者字节的流动序列. java.io是数据流操作的主要软件包 java.nio是对块传输进行的支持 数据流基本概念 “流是磁盘或其它外 ...
- Java中常见数据结构List之ArrayList
这里主要包含ArrayList和LinkedList, 然后再添加一个:CopyOnWriteArrayList 关于Java中的集合内容, 感觉都已经被写烂了, 我这里主要是做个复习, 再从扒下源代 ...
- java中volatile的简单理解
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7833881.html 据说,volatile是java语言中最轻量级的并发控制方式. vo ...
- 关于JAVA中异常处理的简单阐释.
---恢复内容开始--- 这是我的一篇要在博客园发布的随笔,主要是简单的概括一下我本次所学的关于异常处理的知识.有讲的不妥当的地方,或者有需要补充的,还请各位高人给指点,共同学习,虚心求学.谢谢啦~ ...
- Java中的集合List、ArrayList、Vector、Stack(三)
List接口 List集合代表一个有序集合,集合中每一个元素都有其对应的顺序索引.List集合容许使用重复元素,可以通过索引来访问指定位置的集合对象. ArrayList和Vector实现类 Arra ...
- redis学习笔记(二)——java中jedis的简单使用
redis怎么在java中使用,那就是要用到jedis了,jedis是redis的java版本的客户端实现,原本原本想上来就直接学spring整合redis的,但是一口吃个胖子,还是脚踏实地,从基础开 ...
随机推荐
- 访问mysql出现“Access denied for user root@localhost”(using password:NO)解决方案
首先声明,出现这个提示的原因有很多,以下只针对我遇到的一种情况 使用解压缩版安装mysql的时候,data文件夹是自己新建的,my-default.ini也是自己配置的,这时直接启动mysql服务的时 ...
- ARCH-LINUX 折(安)腾(装)记
2016-08-09 前几天装的manjaro一直卡住,今天想换archlinux.... 先联个网.....wifi-menu 写入U盘 tuna 下载了ISO UltraISO 写进U盘,结果出问 ...
- lzo压缩格式文件查看
使用lzop命令解压并查看 :lzop -cd xxx.lzo |more 附压缩命令:lzop xxx.log (生成xxx.log.lzo) 其它参数: # lzop -v test # 创建te ...
- Help improve Android Studio by sending usage statistics to Google
Please press I agree if you want to help make Android Studio better or I don't agree otherwise. more ...
- centos6.5 安装zabbix
实验说明: 操作系统: CentOS6.5 64位 Web环境: Apache Mysql PHP zabbix版本: LTS 2.2.10 Linux服务器IP: 10.0.0.2 Linux客户端 ...
- CodeForces 711C Coloring Trees
简单$dp$. $dp[i][j][k]$表示:前$i$个位置染完色,第$i$个位置染的是$j$这种颜色,前$i$个位置分成了$k$组的最小花费.总复杂度$O({n^4})$. #pragma com ...
- Unity人工智能学习—确定性AI算法之追踪算法一
转自http://blog.csdn.net/zhangxiao13627093203/article/details/47451063 尽管随机运动可能完全不可预知,它还是相当无趣的,因为它完全是以 ...
- Proteus中MATRIX-8X8 LED灯的连接
上面8个引脚用于选择行,低电平有效.下面8个引脚用于选择列,高电平有效. 经测试,红色点阵LED与之相反,是上面的引脚用于选择列,且高电平有效:下面的引脚用于选择行,低电平有效. 在AT89C51单片 ...
- cshtml一二
布局页:_MyLayout.cshtml <!DOCTYPE html> @*Razor布局页*@ <html> <head> @*HTTP的头部协议,提示浏览器网 ...
- Leetcode - 458 Poor Pigs
题目: 总共有1000个罐子,其中有且只有1个是毒药,另外其他的都是水. 现在用一群可怜的猪去找到那个毒药罐. 已知毒药让猪毒发的时间是15分钟, 那么在60分钟之内,最少需要几头猪来找出那个毒药罐? ...