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(); 判断是否包含 ...
随机推荐
- goreleaser 方便的go 二进制包分发工具
goreleaser 可以帮助我们进行go 二进制包的快速,简单分发,我们可以用来创建一个github release 以及发布到homwbrew formula . 安装 mac 系统,实际根据自己 ...
- react-static 基于react 渐进式静态站点生成框架
react-static 是一个不错的基于react 开发的静态站点生成框架,可以用来替代create-react-app 包含的特性 100% react 很快的构建以及性能 自动代码以及数据分离 ...
- How_Require_Extensions_Work
Why Doing require extensions correctly is essential, because: Users should be able to install multip ...
- super and this
super 指向父类的一个指针, 引用父类中的属性,方法或者构造函数 public class Father { String name ; Father(String myName){ name = ...
- 我发起了一个 .Net 开源 数据库 项目 SqlNet
大家好 , 我发起了一个 .Net 开源 数据库 项目 SqlNet . 项目计划 是 用 C# 写一个 关系数据库 . 可以先参考我之前写的 2 篇文章 : 谈谈数据库原理 https://w ...
- thinkphp5 查询的数据是对象时,获取原始数据方法
获取原始数据 如果你定义了获取器的情况下,希望获取数据表中的原始数据,可以使用: $user = User::get(1); // 通过获取器获取字段 echo $user->status; / ...
- js图片预加载后触发操作
为了使得图片加载完,再触发回调函数,需进行图片预加载处理 function loadImage(url, callback) { var img = new Image(); img.src = ur ...
- variable 'QJsonArray array' has initializer but incomplete type
variable "xxx" has initializer but incomplete type 编译报以上错误 分析:“xxx”对应的类型没有找到,没包含定义该变量类型的头文 ...
- go get golang.org/x 包失败解决方法
由于墙的原因,国内使用 go get安装golang 官方包可能会失败 解决方法 方法1 [不需要FQ] Win10下相关配置: GOPATH : E:\go 安装记录: E:\>go get ...
- 信息安全-加密:AES 加密
ylbtech-信息安全-加密:AES 加密 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一 ...