【杰哥爱算法】自己写了一个简陋的集合,望大神一起交流,给意见
package cn.naiwaer.test;
/**
* 自定义的ArrayList集合
* @author FH
*
*/
public class MyArrayList {
private Object[] arr = null;
/**
* 向集合中添加元素
* @param obj 需要添加的元素
*/
public void add (Object obj){
if(arr!=null){
int num = arr.length;
System.out.println(num);
if(arr[num-1]!=null){
Object objTem[] = new Object[num+1];
for(int i=0;i<arr.length;i++){
objTem[i]=arr[i];
}
objTem[num]=obj;
arr=objTem;
}else{
arr[num-1]=obj;
}
}else{
arr= new Object[1];
this.add(obj);
}
}
public Object[] getList(){
return arr;
}
/**
* 从集合中移除元素
* @param index 要移除元素的下标,下标从0开始
* @return
*/
public boolean remove(int index){
if(index<arr.length&&index>=0){
arr[index]=null;
Object[] temObj = new Object[arr.length-1];
//将数组分为两次迭代,直接将删除元素下标前的所有元素赋值给新的数组,从而跳过index这一项避免每次循环都要进行判断,从而提高性能
for(int i=0;i<index;i++){
temObj[i]=arr[i];
}
//跳过被删除元素下标,将后面的继续赋值给新的数组
if(index<arr.length){
for(int i=index+1;i<arr.length;i++){
temObj[i-1]=arr[i];
}
}
arr=temObj;
return true;
}else{
return false;
}
}
}
/**
* 自定义的ArrayList集合
* @author FH
*
*/
public class MyArrayList {
private Object[] arr = null;
/**
* 向集合中添加元素
* @param obj 需要添加的元素
*/
public void add (Object obj){
if(arr!=null){
int num = arr.length;
System.out.println(num);
if(arr[num-1]!=null){
Object objTem[] = new Object[num+1];
for(int i=0;i<arr.length;i++){
objTem[i]=arr[i];
}
objTem[num]=obj;
arr=objTem;
}else{
arr[num-1]=obj;
}
}else{
arr= new Object[1];
this.add(obj);
}
}
public Object[] getList(){
return arr;
}
/**
* 从集合中移除元素
* @param index 要移除元素的下标,下标从0开始
* @return
*/
public boolean remove(int index){
if(index<arr.length&&index>=0){
arr[index]=null;
Object[] temObj = new Object[arr.length-1];
//将数组分为两次迭代,直接将删除元素下标前的所有元素赋值给新的数组,从而跳过index这一项避免每次循环都要进行判断,从而提高性能
for(int i=0;i<index;i++){
temObj[i]=arr[i];
}
//跳过被删除元素下标,将后面的继续赋值给新的数组
if(index<arr.length){
for(int i=index+1;i<arr.length;i++){
temObj[i-1]=arr[i];
}
}
arr=temObj;
return true;
}else{
return false;
}
}
}
...全文
相关推荐
C++自制小游戏《杰哥和阿伟》源码(cpp)
C++自制小游戏《杰哥和阿伟》源码(cpp) C++小游戏,由哔哩哔哩的梗制作而成,切勿当真哦~ 游戏内行为请勿模仿! 原创小游戏,请勿转载或整改~ 记得关注@Ender_momo,短时间内将发布制作过程
Java零基础-集合:集合的搜索算法
在Java编程中,对集合进行搜索是一项常见的任务。集合的搜索算法可以快速定位或检索集合中的元素。对于Java零基础的学习者来说,了解和掌握集合搜索算法的基本概念和实现方式对于提高编程技能至关重要。本文将介绍Java集合中的搜索算法,包括线性搜索和二分搜索两种基本方法。通过代码示例和测试用例,本文将帮助Java零基础的学习者理解如何在集合中进行有效搜索。Java集合框架提供了多种数据结构来存储集合元素,如ListSet和Map。每种数据结构都有其特定的搜索方法。例如,List。
需要杰哥讲解的毕设js代码
需要杰哥讲解的毕设js代码
杰哥两套卷.rar
杰哥两套卷.rar
有跟我一样看不懂代码,只能盲抄来理解的吗,杰哥看到了莫生气我自己现在真写不了好了,今天的案例与while语句有关
有跟我一样看不懂代码,只能盲抄来理解的吗,杰哥看到了莫生气我自己现在真写不了好了,今天的案例与while语句有关


