对java数组操作方法

/**
 * 建立一个可以实现整型数组的操作类(Array),而后 在里面可以操作的数组大小由外部来决定,
 * 而后在Array类里面需要提供有数组的如下处理:进行数组的增加(如果数据满了,则无法增加)、
 * 可以实现数组的容量扩充、取得数组的全部内容
 * 完成之后次基础上在派生出两个子类;
 * 1.数组排序类:返回的数据必须是排序后的结果
 * 2.数组反转类:可以实现内容的首尾交换
 */
package cn.ml.array;
import java.util.Arrays;
class Array{ //数组操作类
private int data[] ; //数组并不知道具体的长度
private int food ; //定义脚标处理
/**
* 实现有外部决定数组的大小
* @param len 数组的长度
*/
public Array(int len) { //设置一个初始化值
if(len<0) {
this.data = new int[0];
}else {
this.data = new int[1];
}
}
/**
* 改变原数组的大小
* @param inc
*/
public void increment(int inc) {
int[] temp = new int[this.data.length + inc];
System.arraycopy(this.data, 0, temp, 0, this.data.length);
this.data = temp; //改变应引用
}
/**
* 获取全部的数据
* @return 全部数据
*/
public int[] getData(){
return this.data;
}
/**
* 实现数据的添加
* @param num 添加的数据
* @return 添加结果
*/
public boolean add(int num) {
if(this.food<this.data.length) {
this.data[this.food++] =num;
return true;
}
return false;
}
}
public class BasicsArray {
public static void main(String[] args) {
Array arr = new Array(5);
System.out.print(arr.add(10)+"\t");
System.out.print(arr.add(15)+"\t");
System.out.print(arr.add(25)+"\t");
System.out.print(arr.add(52)+"\t");
System.out.print(arr.add(56)+"\t");
if(arr.add(99) == false) {
arr.increment(3);//扩充3个容量
System.out.print(arr.add(99)+"\t");
System.out.print(arr.add(85)+"\t");
System.out.print(arr.add(35)+"\t");
}
int temp[] = arr.getData();
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i]+ "\t");
}
}

}
/**
 * 数组排序子类
 * @author Administrator
 *
 */
class SortArray extends Array{
public SortArray(int len) { //设置长度
super(len);
}
/**
* 覆盖父类的输出方法,子类中进行排序后的输出
*/
public int[] getData() {
Arrays.sort(super.getData());
return super.getData();
}
}
/**
 * 数组反转的类
 * @author Administrator
 *
 */
class ReverseArray extends Array{

public ReverseArray(int len) { //设置长度
super(len);
}
public int[] getData() {
int center = super.getData().length/2;
int head = 0;
int tail = super.getData().length-1;
for (int i = 0; i < center; i++) {
int temp = super.getData()[head];
super.getData()[head++] = super.getData()[tail];
super.getData()[tail--] = temp;
}

return super.getData();

}
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值