class AList<E>{
//属性:数组和实际元素个数
private Object[] data;
private int size;
//构造函数:有参、无参
public AList(int x){
if(x<0)
System.out.println("集合初始化异常,不正常的初始值");
else
data=new Object[x];
}
public AList(){
this(10);
} //size方法:返回实际元素个数
public int size(){
return size;
} //add方法:添加元素,先判断数组空间是否满了,满->扩容,再添加
public void add(E newData){
if(size==data.length)
data=Arrays.copyOf(data,size + (size >> 1));
data[size++]=newData;
} //get方法:获取指定位置的元素,先对下表进行校验
public Object get(int index){
if(index<0 || index>size-1)
System.out.println("输入的下标不准确,请重新输入!");
return data[index];
} //remove方法:传下标,先判断下标是否越界
public void remove(int index){
if(index<0 || index>size-1)
System.out.println("输入的下标不准确,请重新输入!");
System.arraycopy(data,index+1,data,index,(size--) -(index+1));
} //remove方法:传下标,先判断下标是否越界,对数组进行循环遍历,用equals判断
public void remove(Object obj){
if(obj==null)
System.out.println("删除失败,传入元素不能为空");
else{
for(int i=0;i<size;i++){
if(obj.equals(data[i])){
remove(i);
}
}
}
} //contains方法:判断数组中是否含有传入的参数
public boolean contains(Object obj){
for(int i=0;i<size;i++){
if(obj.equals(data[i]))
return true;
}
return false;
} @Override
public String toString(){
StringBuffer str=new StringBuffer("[");
for(int i=0;i<size;i++){
if(i!=(size-1))
str.append(data[i]).append(",");
else
str.append(data[i]);
}
return str+"]";
}
}

ArrayList的简单实现的更多相关文章

  1. C#中数组与ArrayList的简单使用

    1. 多维数组 2. 锯齿数组 3. 数组的常用操作 4. ArrayList 1. 多维数组 多维数组:行数和列数在定义时已确定 string[,] arr = new string[2, 3]; ...

  2. ArrayList 集合 简单运用

     集合 遍历 import java.util.ArrayList; class Demo02 { public static void main(String[] args) { // 创建Arra ...

  3. javaSE基础之 ArrayList的底层简单实现

    最近就是想扒一扒存在硬盘里面的学习资料(突然想到什么),把以前写过的一些东西整理一下分享出来. 这边是ArrayList 的简单实现,当然只实现了部分方法 package com.yck.collec ...

  4. 简单实现 ArrayList

    java中提供了多个集合框架 其中就有ArrayList  下面简单的实现一下 只写了添加,获取长度和根据下标获取元素的方法 public class MyArrayList { //定义一个obje ...

  5. java 遍历arrayList的四种方法

    package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public ...

  6. ArrayList的使用方法(转载)

    转载自: http://i.yesky.com/bbs/jsp/view.jsp?articleID=889992&forumID=150 1.什么是ArrayList    ArrayLis ...

  7. ArrayList

    各种原因,前两年做C语言去了,现在重新做JAVA, 感觉自己基础很不扎实,要好好学习啦, 先从简单的开始~ 以下内容基于jdk1.7.0_79源码: 什么是ArrayList 可以简单的认为是一个动态 ...

  8. Java Socket发送与接收HTTP消息简单实现

    在上次Java Socket现实简单的HTTP服务我 们实现了简单的HTTP服务,它可以用来模拟HTTP服务,用它可以截获HTTP请求的原始码流,让我们很清楚的了解到我们向服务发的HTTP消息的结 构 ...

  9. Java基础(44):ArrayList使用详解

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:    a.动态的增加和减少元素    b.实现了IColle ...

  10. ArrayList的使用方法【转载】

    *** Source URL: http://i.yesky.com/bbs/jsp/view.jsp?articleID=889992&forumID=150 *** 1.什么是ArrayL ...

随机推荐

  1. X200s,Debian 8(Jessie) 安装流水帐

    1. U盘启动安装 a. 因为无线网卡驱动是non-free,需要另外下载,对应X200s,文件是iwlwifi-5000-5.ucode,下完放到安装U盘的根目录下,安装时就不会再提示而是直接安装  ...

  2. LABjs(类似于LazyLoad,但它更加方便管理依赖关系)

    动态加载JS函数 一般性的,当我们需要加载js文件的时候都会使用script标签来实现,类似于如下代码: <script type="text/javascript" src ...

  3. Web前端框架学习成本比较及学习方法

    就项目中自己用过的前端框架的学习成本比较与学习心得分享 刚工作时间不长只用过这几个框架下面是难易程度比较: 不论哪个web前端框架, 究其本质都是把页面的数据传递给后台服务器语言(如java)进行处理 ...

  4. 在AD09中查找元件和封装

    在AD09中查找元件和封装 Altium Designer 软件方法/步骤 Altium下Miscellaneous Devices.Intlib元件库中常用元件有: 电阻系列(res*)排组(res ...

  5. 排序算法Java实现(快速排序)

    算法描述:对于一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止. ...

  6. python结巴(jieba)分词

    python结巴(jieba)分词 一.特点 1.支持三种分词模式: (1)精确模式:试图将句子最精确的切开,适合文本分析. (2)全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解 ...

  7. 虚拟机Linux(centos)系统能ping通主机,主机无法ping通Linux解决方案

    本文引用:https://blog.csdn.net/clean_water/article/details/53023308 三个步骤: 第一步:虚拟机网络连接方式选择Nat 第二步.关闭liunx ...

  8. WAF Bypass数据库特性(Oracle探索篇)

    0x01 背景 oracle与mysql特性类似,半自动化fuzz了一下,记录成果. 0x02 测试 位置一:参数和union之间的位置 1)空白字符 Oracle中可以利用的空白字符有: %00   ...

  9. binlog cache size设置是否合理判断

    二进制日志是写操作是,首先写入二进制日志缓冲(binlog_cache)然后commit,再从binlog_cache写入到binlog文件,默认大小为32K,而binlog_cache是sessio ...

  10. js的鼠标事件整理-------Day47

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/marSmile_tbo/article/details/34202437 今天回来的有些晚了,实在是 ...