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. ansible-2.1.0.0_module

    ansible --version ansible 2.1.0.0 config file = /home/onest/luoliyu/ceph-ansible/ansible.cfg configu ...

  2. 【ubuntu】-桌面假死的解决办法

    第一,通过ctrl+art+F1(1-6),启动本地终端 切换到了字符界面tty1 第二,查询进程,ps -e |grep tty7 得到tty7的pid号 第三,杀死tty7的进程 , kill 9 ...

  3. jsp页面在Android系统和ISO系统的兼容性问题

    问题:一个jsp页面在Android手机上显示正常,但到了ISO系统上jsp页面的样式不显示了. 原因:css文件中设置样式时单位不兼容. 解决方案:将rem 转换成px;

  4. RC4加密解密

    package util; public class RC4Util { public static String decry_RC4(byte[] data, String key) { if (d ...

  5. The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application问题解决方案参考

    错误信息:The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the ...

  6. Docker volume权限导致的几个问题

    挂宿主目录的权限问题 由于容器和宿主机共用了一套内核,因此同一个uid对应的容器用户和宿主机用户(哪怕用户名不同)对于内核权限控制而言都是同一个用户.而默认情况下,如果未做特殊配置,容器里的进程默认是 ...

  7. Python并发编程之线程池&进程池

    引用 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码,但是当项目达到一定的规模,频繁创建/销毁进程或者线程是非常消耗资源的,这个时候我 ...

  8. Codeforces 101623E English Restaurant - 动态规划

    题目传送门 传送门 题目大意 餐厅有$n$张桌子,第$i$张桌子可以容纳$c_i$个人,有$t$组客人,每组客人的人数等概率是$[1, g]$中的整数. 每来一组人数为$x$客人,餐厅如果能找到最小的 ...

  9. 解决js的 Math取正弦值 余弦值不准确的问题

    //角度 var  vAngle=90: //正弦值 var vSin=Math.round(Math.sin((vAngle * Math.PI/180)) * 1000000) / 1000000 ...

  10. 纸小墨ink简洁主题story爱上你的故事

    主题介绍 为纸小墨写的一款主题,该主题移植自Yumoe github地址:ink-theme-story Demo ink-theme-story 主题的一些食用说明 菜单 标题旁边有一个 · 字符, ...