8.23 数组操作
建立一个可以实现整型数组的操作类(Array),而后在里面可以操作的数组的大小由外部来决定,
而后在Array类里面需要提供有数组的如下处理:进行数据的增加(如果数据满了则无法增加)、可以实现数组的容量扩充、取得数组全部内容。
完成之后在此基础上再派生出两个子类:
· 数组排序类:返回的数据必须是排序后的结果;
· 数组反转类:可以实现内容的首尾交换。
class Array {
private int [] data;
private int foot;// 进行数组索引控制
public Array(int len){
if(len > 0){
this.data = new int[len];
} else {
this.data = new int[1];
}
}
// 实现数组的容量扩充,给出的是扩充大小,实际大小,
public void increment(int num){
int newData[] = new int[this.data.length + num];
System.arraycopy(this.data,0,newData,0,this.data.length);
this.data = newData;
}
public boolean add(int num){// 数据增加赋值;
if(this.foot < this.data.length){
this.data[this.foot++] = num;
return true;
}
return false;
}
public int[] getData(){
return this.data;
}
}
class SortArray extends Array {
public SortArray(int len){
super(len);
}
public int[] getData(){// 获得排序结果
java.util.Arrays.sort(super.getData());// 排序
return super.getData();
}
}
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 x = 0;x < center;x++){
int temp = super.getData()[head];
super.getData()[head] = super.getData()[tail];// 将head,tail位置的数组颠倒!!!
super.getData()[tail] = temp;
head++;
tail--;
}
return super.getData();
}
}
public class HelloWorld {
public static void main(String args[]) {
Array arr = new Array(5);
//SortArray arr = new SortArray(5);
//ReverseArray arr = new ReverseArray(5);
System.out.println(arr.add(1));
System.out.println(arr.add(12));
System.out.println(arr.add(143));
System.out.println(arr.add(153));
System.out.println(arr.add(12));
arr.increment(3);
System.out.println(arr.add(91));
System.out.println(arr.add(92));
System.out.println(arr.add(93));
int result[] = arr.getData();
for(int temp : result){
System.out.print(temp + ",");
}
}
}
相信坚持的力量,日复一日的习惯.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2022-06-08 tp3.2 企业转账到零钱