import java.util.Arrays;

 public class ArrayOperator {

     public static void main(String[] args) {
// TODO Auto-generated method stub
ArrList list = new ArrList();
list.add(5);
list.add(7);
list.add(6);
System.out.println(list.sizeof());
// list.remove(0);
list.insert(1, 7);
System.out.println(list.toString());
System.out.println(list.search(6)); } }
class ArrList{
//定义元素个数
private int size = 0;
//初始定义数组
private int[] data = new int[10];
public ArrList(){
}
public ArrList(int inificapacity){ //初始化数组容量的构造方法
if(inificapacity < 0){
throw new ArrayIndexOutOfBoundsException();
}else {
data = new int[inificapacity];
}
}
public boolean isEmpty(){ //判断数组是否为空操作
return size ==0;
}
public void grow(){ //判断元素是否需要扩容
if(data.length <=1){
data = Arrays.copyOf(data, data.length+1);
}else{
data = Arrays.copyOf(data, data.length+data.length>>1);
} }
public void add(int element){ //增加元素操作
if(size >= data.length){
this.grow();
}else{
data[size++] = element;
}
}
public void insert(int index,int element){ //插入元素操作
if(index < 0){
throw new ArrayIndexOutOfBoundsException();
}else if(index <= size){
for(int i = size-1; i >= index;i--){
data[i+1] = data[i];
} data[index] = element;
size++; }else{
throw new ArrayIndexOutOfBoundsException();
}
}
public void remove(int index){
if(index < 0){
throw new ArrayIndexOutOfBoundsException();
}
else if(index < size){
for(int i = index; i < data.length-1;i++){
data[i] = data[i+1];
}size--;
}else{
throw new ArrayIndexOutOfBoundsException();
}
}
public int search(int element){ for(int i = 0; i < size;i++){
if(data[i] == element){ return i;
}
}
return -1;
}
public int ele(int index){
if(index < 0 || index >= size){
throw new ArrayIndexOutOfBoundsException();
}else{
return data[index];
}
}
public int sizeof(){
return size;
}
public void clear(){
data = new int[10];
size = 0;
}
@Override
public String toString(){
StringBuilder str = new StringBuilder("[");
for(int i = 0 ;i < size ;i++){
str.append(data[i]).append(",");
}
String sb = str.toString();
if(size > 0){
sb= sb.substring(0,sb.length()-1);
}
return sb + "]";
}
}

Arrlist的重要方法重写的更多相关文章

  1. 【java开发】方法重写和方法重载概述

    类的继承   父类-子类 关键字 extends 新建一个父类 public class Person {     private String name;          private int ...

  2. 学习ASP.NET Web API框架揭秘之“HTTP方法重写”

    最近在看老A的<ASP.NET Web API 框架揭秘>,这本书对于本人现阶段来说还是比较合适的(对于调用已经较为熟悉,用其开发过项目,但未深入理解过很多内容为何可以这样“调用”).看到 ...

  3. 方法重写和方法重载;this关键字和super关键字

    1:方法重写和方法重载的区别?方法重载能改变返回值类型吗? 方法重写: 在子类中,出现和父类中一模一样的方法声明的现象. 方法重载: 同一个类中,出现的方法名相同,参数列表不同的现象. 方法重载能改变 ...

  4. 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

    一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...

  5. 用HashSet的add方法谈hashcode和equals方法重写

    本文主要通过用HashSet的add方法讲一下hashCode和equals方法重写.错误的地方望指正. 1.了解HashSet的add方法 了解一个方法的好办法是看源码,所以先看源码 private ...

  6. Java中实例方法,实例变量,静态方法,静态变量,final方法重写的问题,覆盖

    Java中只有非私有的实例方法能被重写,即实现多态,子类可以覆盖父类的方法,但是实例变量不能覆盖,若子类和父类均定义了同样名称的变量,则对于子类来说这是两个不同的变量,要想调用父类的变量必须显示去调用 ...

  7. Objective-c 类的继承 方法重写 方法重载

    一.类的继承 Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序. Obje ...

  8. C++学习笔记24,方法重写与方法隐藏

    该博文仅用于交流学习.请慎用于不论什么商业用途.本博主保留对该博文的一切权利. 博主博客:http://blog.csdn.net/qq844352155 转载请注明出处: 方法重写.是指在子类中又一 ...

  9. java方法重写和super关键字

    //java方法重写和super关键字 //在继承中,其实就是子类定义了和父类同名的方法 //就是方法,属性都是相通的 //重写限制: //被子类重写的方法不能拥有比父类方法更加严格的权限 //sup ...

随机推荐

  1. java 实现hex文件转换bin保存至内存中

    hex 文件的格式,以文件中某一行字符串(16进制)为例: :10 0830 00 020C5D0224B3FFFFFFFFFFFFFFFFFFFF 7E 10,长度,转换成10进制,也就是16B 大 ...

  2. 使用Python的库qrcode生成二维码

    现在有很多二维码的生成工具,在线的,或者安装的软件,都可以进行生成二维码.今天我用Python的qrcode库生成二维码.需要预先安装  Image 库 安装 用pip安装 # pip install ...

  3. ELK学习笔记之ELK搜集OpenStack节点日志

    模板来自网络,模板请不要直接复制,先放到notepad++内调整好格式,注意缩进 部署架构 控制节点作为日志服务器,存储所有 OpenStack 及其相关日志.Logstash 部署于所有节点,收集本 ...

  4. UML类图新手入门级介绍(转)

    首先,看动物矩形框,它代表一个类(Class).类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示.第二层是类的特性,通常就是字段和属性.第三层是类的操作,通常是方法或行为.前面的符号,+ ...

  5. 基于OpenCV做“三维重建”(3)--相机参数矩阵

    通过前面的相机标定,我们能够获得一些参数模型.但是这些相机的参数矩阵到底是什么意思?怎样才能够判断是否正确?误差都会来自哪里?这里就必须要通过具体实验来加深认识.采集带相机参数的图片具有一定难度,幸好 ...

  6. 安装ceph设置镜像源

    当安装ceph时 卡在这的时候ceph会替换成自己的镜像源 所以这个时候  赶紧再打开一个终端 替换成国内的清华大学的镜像源 就不会被替换回去了 ceph.repo 文件 [Ceph] name=Ce ...

  7. VC++ 实现程序重启

    转载:https://blog.csdn.net/what951006/article/details/72729448 一.创建一个Win32项目 二.窗口处理函数中,Create窗口时创建一个按钮 ...

  8. Android 全局使用第三方字体

    给APP全局设置字体主要分为两个方面来介绍 一.给原生界面设置第三方字体 1.准备工作-下载第三方字体:传送门 将文件放入工程assets目录下.(一般个人习惯单独命名一个文件夹放字体文件,也可直接放 ...

  9. 最简单获取appPackage和appActivity 的方法

    appPackage和appActivity 进行appium自动化测试必须的两个参数,我们所测试的APP项目不同,这两个参数肯定也是不一样的.我们启动的包都是靠这两个参数去驱动的,那么我们怎么可以快 ...

  10. showdoc 自动脚本安装

    ========================== showdoc 简介==========================在线文档管理系统很多, 比如阿里的语雀.腾讯的 TAPD 平台也包括文档管 ...