刚开始学JAVA,从笔记做起!
program 1 数组的操作
目的
书上说,数组[...] 的长度一经初始化就不能改变;但是对数组的一些操作(插入、裁剪、扩展等)又要求改变数组的长度。《第一行代码 JAVA》一书的 4.3 继承案例 中讲道:“数组的缺陷就在于长度固定,而这个问题的解决可以利用第3章的链表解决……” (p220) 于是,在对继承的下一步学习之前,我先用链表的方法来尝试解决。
作为自己的笔记,也请诸君不吝赐教。
1. 数组中的元素类 EleOfArr
/** element of array
* 链表结构
* @author Yuan_hang
*
*/
public class EleOfArr {
// 属性
private double num;
private EleOfArr next;
// 构造方法
public EleOfArr(){}
public EleOfArr(double num){
this();
this.num = num;
}
public EleOfArr(double num, EleOfArr next){
this(num);
this.next = next;
}
// 方法
public void setNum(double num){ this.num = num; }
public double getNum(){ return this.num; }
public void setNext(EleOfArr next){ this.next = next; }
public EleOfArr getNext(){ return this.next; }
public void addEle(double num){
this.next = new EleOfArr(num);
}
}
2. 数组类 Array 及其方法
/**
* Array from EleOfArr
* 1. 创建一个数列
* 2. 读取某个位置的数
* 3. 在数列最末(任意位置)插入一个数
* 4. 删除某个位置的数
* 5. 扩展数列,缺数则补齐0
* 5. 转置操作
* 6. 排序(正序/逆序)操作
* @author Yuan_hang
*
*/
public class Array {
//属性
private double[] arr;
private EleOfArr[] arrTemp;
private int arrLength;
/**
* 构造方法
*/
//无参构造
public Array(){}
//单参数构造
public Array(double[] arr){
this.arr = arr;
this.arrLength = arr.length;
this.arrTemp = new EleOfArr[this.arrLength];
this.arrTemp[this.arrLength-1] = new EleOfArr(arr[this.arrLength-1]);
for(int x=this.arrLength-2; x>=0; x--){
this.arrTemp[x] = new EleOfArr(arr[x],arrTemp[x+1]);
}
}
//多参数构造
public Array(double[] arr,int arrLength){
if(arrLength<0){System.err.println("Array: Length cannot be nagative!