1-自己动手编写ArrayList集合
学习集合的原理,这是一个很简单的代码,没有索引下标越界判断,异常处理等,不够健壮,后面会继续更新完善代码.....
只是入门学习一下
package my; /***
* 自己动手编写一个ArrayList类
* @author 刘诗华
*
*/
public class ArrayList { //集合默认初始化长度为10个元素
private final static int DEFAULT_CAPACITY = 10; //当前集合中存储了多少个元素
private int size=0; //存储对象容器
private Object[] ele=null; //无参数构造器
public ArrayList()
{
this(DEFAULT_CAPACITY);
}
//带参数构造器
public ArrayList(int initialCapacity)
{
ele=new Object[initialCapacity];
} //添加元素
public void add(Object e)
{
ele[size]=e;
size++;
} //获取指定索引元素
public Object get(int index)
{
return ele[index];
} //获取元素第一次在集合出现的索引位置
public int indexOf(Object o)
{
for(int index=0;index<size;index++)
{
if(o.equals(ele[index]))
return index;
}
return -1;
} //查询元素最后一次出现的索引
public int lastIndexOf(Object o)
{
int len=size-1;
for(int index=len;index!=-1;index--)
{
if(o.equals(ele[index]))
return index;
}
return -1;
} //替换元素
public void set(int index, Object element)
{
ele[index]=element;
} //返回集合存储元素长度
public int size()
{
return this.size;
} //判断是否为空集合
public boolean isEmpty()
{
return size == 0;
} //清空集合所有元素
public void clear()
{
ele=new Object[DEFAULT_CAPACITY];
size=0;
} //判断集合是否包含某个元素
public boolean contains(Object o)
{
int len=size-1;
for(int index=len;index != -1; index--)
{
if(o.equals(ele[index]))
return true;
}
return false;
} //删除某个元素
public void remove(Object o)
{
int index=this.indexOf(o); for(int i=index;index<=size-1;index++)
{
ele[index]=ele[index+1];
ele[index+1]=null;
size--;
}
} //删除指定索引位置的元素
public void remove(int index)
{
for(int i=index;index<=size-1;index++)
{
ele[index]=ele[index+1];
ele[index+1]=null;
size--;
}
} @Override
public String toString() { if(ele == null)
return "null"; if(size ==0)
return "[]"; StringBuilder sb=new StringBuilder();
sb.append("[");
for(int index=0;index<size;index++)
{
sb.append(ele[index]);
if(index != size-1)
sb.append(",");
}
sb.append("]");
return sb.toString();
} }
1-自己动手编写ArrayList集合的更多相关文章
- Java集合 -- ArrayList集合及应用
JAVA集合 对象数组 集合类之ArrayList 学生管理系统 斗地主案例 NO.one 对象数组 1.1 对象数组描述 A:基本类型的数组:存储的元素为基本类型 int[] arr={1,2,3, ...
- 【代码笔记】Java常识性基础补充(二)——数组、ArrayList集合、ASCII编码、 eclipse基础操作、eclipse调试、eclipse项目导入、eclipse快捷键
1.0 如何定义数组以及访问数组中的元素,如下所示.ArrayDemo01.java public class ArrayDemo01 { public static void main(String ...
- Java基础语法(自定义类、ArrayList集合)
Java基础语法 今日内容介绍 u 自定义类 u ArrayList集合 第1章 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类 ...
- Java 之 ArrayList 集合
一.ArrayList 概述 java.util.ArrayList 是 大小可变的数组 的实现,存储在内的数据称为元素.该类是一个 集合类(容器),可以让我们更便捷的存储和操作对象数据. 该类可以 ...
- java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,
1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...
- 设计模式(十七)——迭代器模式(ArrayList 集合应用源码分析)
1 看一个具体的需求 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系.如图: 2 传统的设计方案(类图) 3 传统的方式的问题分析 ...
- C#语言基础——集合(ArrayList集合)
集合及特殊集合 集合的基本信息: System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections ...
- OWIN系列之自己动手编写中间件
一.前言 1.基于OWIN的项目摆脱System.Web束缚脱颖而出,轻量级+跨平台,使得ASP.NET应用程序只需依赖这个抽象接口,不用关心所运行的Web服务器. 2.OWIN.dll介绍 使用反编 ...
- ArrayList集合 、特殊集合
一.ArrayList集合 集合内可以放不同类型的元素 另:object类型为所有数据类型的基类 添加元素:.add(); 清空集合:al.clear(); 克隆集合:.clone(); 判断是否包含 ...
随机推荐
- Mosaic 前端微服务框架
Mosaic 是一系列的服务.库,集成在一起,定义了组件如何彼此交互,可以用来支持大规模的web 站点开发 一张架构图 说明 尽管上图中的一些组件已经迭代演化了(skipper 的route 配置,上 ...
- window.onload与$(document).ready()
window.onload是原生JS事件,$(document).ready()是Jquery实现的与其作用类似的事件. 二者区别如下: 1.执行时间不同 $(document).ready()是DO ...
- js技巧专题篇: 页面跳转
本篇主要介绍网页上常见的页面跳转技术.页面跳转有几种方式,比较常用的是window.location.href,window.location.replace,window.open,当然还有目前比较 ...
- day 34 线程队列 线程池 协程 Greenlet \Gevent 模块
1 线程的其他方法 threading.current_thread().getName() 查询当前线程对象的名字 threading.current_thread().ident ...
- day 29 socketsetserver 模块
1.FTP上传/下载服务端/客户端. --------------------------------------------------------------------------------- ...
- CloudStack学习-2
环境准备 这次实验主要是CloudStack结合glusterfs. 两台宿主机,做gluster复制卷 VmWare添加一台和agent1配置一样的机器 系统版本:centos6.6 x86_64 ...
- YUICompressor的安装及使用(一)
step1:下载ant和YUICompressor 1) Ant: http://ant.apache.org/bindownload.cgi 打开页面后,下拉滚动条,找到如下图所示,单 ...
- 将VirtualBox里安装的虚拟机在后台运行方法(在状态栏隐藏窗口)
由于工作和学习需要,经常要开一个虚拟机开测试和开发,虚拟机我选择Oracle公司的VirtualBox(用了几年了,感觉不错的一款产品),经常开着这个窗口感觉有些浪费资源,这样隐藏窗口就在需求了. 将 ...
- [转]总结@Autowired 和@Resource
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按byName自动注入罢了. @Resource有两个属性是比较重要的,分 ...
- 查看hp小型机命令集
查看HP小型机的信息的命令集(一) 1.机型 #model 9000/800/L2000-44 注意:其中44是指每个cpu有440MHZ. 2.cpu个数 #top CPU LOAD USER NI ...