自定义ArrayList集合
来源:互联网 发布:上古世纪精灵捏脸数据 编辑:程序博客网 时间:2024/05/21 11:29
package com.heima.structure;
import java.util.Arrays;
/**
* 自己实现ArrayList集合
* @author Zw
* */
public class MyArrayList {
/**
* ArrayList 其实底层是数组
* 定义一个数组 对数组进行增删改查操作
* @author Zw
* */
//无参函数进行初始化
public MyArrayList(){
init(10); //默认给10个初始化容量
}
/**
* 有参函数进行初始化
* */
public MyArrayList(int capacity){
init(capacity);
}
public Object [] arr;//定义一个数组
//第二步统计集合中的元素
private int size=0;
/**
* 进行初始化方法
*
* */
private void init(int capacity){
//进行合法判断
if(capacity<0){
throw new RuntimeException("进行初始化错误");
}
arr=new Object[capacity]; //初始化完成
}
/***
* @param 自己集合添加元素功能 你给我一个Object 类型进行添加
*
* */
public void add(Object element){
//如果数组越界 进行扩充
if(size>=arr.length){
int newCapacity=arr.length*2;
Object []newarr= Arrays.copyOf(arr, newCapacity);
arr=newarr;
}
//进行赋值操作
arr[this.size]=element;
this.size++;//下标进行加加
}
/**
* @param 查询指定元素所在的下标(比如,44元素的位置就是3.).
* @return 找到了就返回下标 否则-1
* */
public int getElementIndex(Object element){
for (int i = 0; i < arr.length; i++) {
if(arr[i]==element){
return i;//找到了
}
}
return -1; //没有找到
}
//*4):查询指定索引是哪一个元素(比如,位置为2的球员是33.).
/**
* @author Zw
* @param 根据你给我的索引去查找是否有这个元素
* @return 如果找到了就返回
* **/
public Object getIndexElement(int index){
//我要检查是否合法
if(index<0||index>arr.length){
throw new RuntimeException("数组索引越界了♪(^∇^*)");
}
return arr[index];//取出这个值
}
//5):从集合元素中,移除指定的元素 根据下标进行删除.
/**
* @author ZW
* @param 根据你给我的下标进行删除操作
* */
public void remove(int index){
//进行合法判断
if(index<0||index>arr.length){
}
else{
for (int i = index; i < this.size-1; i++) {
arr[i]=arr[i+1]; //把后面元素位置往前面加1
}
this.size--; //进行减一操作 因为我删除一个所以进行减
}
}
//根据元素进行删除了
/**
* @author Zw
* @param 根据你给我的元素去删除
* */
public void remove(Object element){
int index=getElementIndex(element);//找到它的下标
remove(index);//进行删除
}
/**
* @param 根据指定下标位置的元素换成另一个元素..
*
* */
public void set(int index,Object element){
//判断这个下标是否存在
if(index<0||index>arr.length){
throw new RuntimeException("索引越界了亲 ╭(╯3╰)╮");
}
arr[index]=element;//改变这个下标的元素值
}
/**
* @param判断此集合是否为空
* @return 返回真假值
* */
public boolean isEmpty(){
return this.size==0?true:false;
}
/**
* @author Zw
* @param 8.0 返回此集合中的所有个数
* */
public int Size(){
return this.size;
}
/**
* @author Zw
* @param 清除所有集合中的元素
* */
public void clear(){
for (int i = 0; i < arr.length; i++) {
arr[i]=null; //全部赋值给null
}
this.size=0; //改变集合中的个数
}
/***
* @param// 9):打印所有的元素(比如:[11,22,33,44,55])
*遍历功能
* @author Zw
* */
public String print(){
StringBuilder sb=new StringBuilder(size*2);
sb.append("[");
for (int i = 0; i <=size-1; i++) {
sb.append(arr[i]);
if(i!=this.size-1){
sb.append(",");
}
}
sb.append("]");
return sb.toString();
}
/**
* 重写父类的Object的toString方法
*
* **/
@Override
public String toString(){
return this.print();
}
}
import java.util.Arrays;
/**
* 自己实现ArrayList集合
* @author Zw
* */
public class MyArrayList {
/**
* ArrayList 其实底层是数组
* 定义一个数组 对数组进行增删改查操作
* @author Zw
* */
//无参函数进行初始化
public MyArrayList(){
init(10); //默认给10个初始化容量
}
/**
* 有参函数进行初始化
* */
public MyArrayList(int capacity){
init(capacity);
}
public Object [] arr;//定义一个数组
//第二步统计集合中的元素
private int size=0;
/**
* 进行初始化方法
*
* */
private void init(int capacity){
//进行合法判断
if(capacity<0){
throw new RuntimeException("进行初始化错误");
}
arr=new Object[capacity]; //初始化完成
}
/***
* @param 自己集合添加元素功能 你给我一个Object 类型进行添加
*
* */
public void add(Object element){
//如果数组越界 进行扩充
if(size>=arr.length){
int newCapacity=arr.length*2;
Object []newarr= Arrays.copyOf(arr, newCapacity);
arr=newarr;
}
//进行赋值操作
arr[this.size]=element;
this.size++;//下标进行加加
}
/**
* @param 查询指定元素所在的下标(比如,44元素的位置就是3.).
* @return 找到了就返回下标 否则-1
* */
public int getElementIndex(Object element){
for (int i = 0; i < arr.length; i++) {
if(arr[i]==element){
return i;//找到了
}
}
return -1; //没有找到
}
//*4):查询指定索引是哪一个元素(比如,位置为2的球员是33.).
/**
* @author Zw
* @param 根据你给我的索引去查找是否有这个元素
* @return 如果找到了就返回
* **/
public Object getIndexElement(int index){
//我要检查是否合法
if(index<0||index>arr.length){
throw new RuntimeException("数组索引越界了♪(^∇^*)");
}
return arr[index];//取出这个值
}
//5):从集合元素中,移除指定的元素 根据下标进行删除.
/**
* @author ZW
* @param 根据你给我的下标进行删除操作
* */
public void remove(int index){
//进行合法判断
if(index<0||index>arr.length){
}
else{
for (int i = index; i < this.size-1; i++) {
arr[i]=arr[i+1]; //把后面元素位置往前面加1
}
this.size--; //进行减一操作 因为我删除一个所以进行减
}
}
//根据元素进行删除了
/**
* @author Zw
* @param 根据你给我的元素去删除
* */
public void remove(Object element){
int index=getElementIndex(element);//找到它的下标
remove(index);//进行删除
}
/**
* @param 根据指定下标位置的元素换成另一个元素..
*
* */
public void set(int index,Object element){
//判断这个下标是否存在
if(index<0||index>arr.length){
throw new RuntimeException("索引越界了亲 ╭(╯3╰)╮");
}
arr[index]=element;//改变这个下标的元素值
}
/**
* @param判断此集合是否为空
* @return 返回真假值
* */
public boolean isEmpty(){
return this.size==0?true:false;
}
/**
* @author Zw
* @param 8.0 返回此集合中的所有个数
* */
public int Size(){
return this.size;
}
/**
* @author Zw
* @param 清除所有集合中的元素
* */
public void clear(){
for (int i = 0; i < arr.length; i++) {
arr[i]=null; //全部赋值给null
}
this.size=0; //改变集合中的个数
}
/***
* @param// 9):打印所有的元素(比如:[11,22,33,44,55])
*遍历功能
* @author Zw
* */
public String print(){
StringBuilder sb=new StringBuilder(size*2);
sb.append("[");
for (int i = 0; i <=size-1; i++) {
sb.append(arr[i]);
if(i!=this.size-1){
sb.append(",");
}
}
sb.append("]");
return sb.toString();
}
/**
* 重写父类的Object的toString方法
*
* **/
@Override
public String toString(){
return this.print();
}
}
0 0
- 自定义ArrayList集合
- 集合框架--ArrayList集合存储自定义对象
- 自定义实现Java中的ArrayList集合
- Java 集合框架ArrayList 储存自定义数组
- 集合框架-ArrayList集合存储自定义对象的排序案例
- 集合--ArrayList
- 集合ArrayList
- ArrayList集合
- 集合 --- ArrayList
- ArrayList集合
- ArrayList集合
- Arraylist 集合
- ArrayList集合
- 集合---ArrayList
- ArrayList集合
- 集合 ArrayList
- 集合Arraylist
- 集合-ArrayList
- 学习编程的秘诀
- 赋值语句的返回值为永真?
- 程序员面试金典--面试27之有一个正整数,请找出其二进制表示中1的个数相同、且大小最接近的那两个数
- 威佐夫博弈
- 重写equals方法
- 自定义ArrayList集合
- 六道JS面试题
- RecyclerView异常BUG
- 影响软件性能的因素
- 【图像处理中的数学修炼】一书之代码
- 如何在大学学习英语
- 如何利用git由本机向github上传文件
- 中国剩余定理(余数定理)Chinese remainder
- Search in Rotated Sorted Array II