package java11to20;
public class D12_SequentialList2 {
int[] data;
int length = 0;
public static int MAX_LENGTH = 20;
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] Array1 = { 1, 3, 5, 61, 11, 6, 8, 9, 11, 23, 115 };
D11_SequentialList1 FirstList = new D11_SequentialList1(Array1);
System.out.println("已经初始化列表:" + FirstList.toArrayString());
System.out.println("列表为:" + FirstList.toArrayString());
FirstList.reset();
System.out.println("重置后列表:" + FirstList.toArrayString());
int[] Array2 = { 1, 4, 6, 2, 1, 239, 8, 9, 11, 23, 115 };
D12_SequentialList2 SecondList = new D12_SequentialList2(Array2);
System.out.println("已经初始化列表:" + SecondList.toArrayString());
System.out.println("不加\"toArrayString()\"输出的列表是:" + SecondList);
int Value = 4;
int Position = SecondList.locate(Value);
System.out.println(String.format("第%s个位置的数是:%s", Value, Position));
Value = 10;
Position = SecondList.locate(Value);
System.out.println(String.format("第%s个位置的数是:%s", Value, Position));
Position = 2;
Value = 6;
SecondList.insert(Position, Value);
System.out.println(String.format("插入数据%s到%s位置,列表为:%s", Value, Position, SecondList.toArrayString()));
Position = 7;
Value = 11;
SecondList.insert(Position, Value);
System.out.println(String.format("插入数据%s到%s位置,列表为:%s", Value, Position, SecondList.toArrayString()));
Position = 3;
SecondList.delete(Position);
System.out.println(String.format("删除掉%s位置的数据后,新列表数据为:", Position, SecondList.toArrayString()));
SecondList.reset();
System.out.println("重置列表2后为:" + SecondList.toArrayString());
}
public D12_SequentialList2(int[] dataArray) {
data = new int[MAX_LENGTH];
length = dataArray.length;
for (int i = 0; i < dataArray.length; i++) {
data[i] = dataArray[i];
}
}
public String toArrayString() {
String result = "";
if (length == 0) {
return "empty";
}
for (int i = 0; i < length - 1; i++) {
result += data[i] + ", ";
}
result += data[length - 1];// 去掉最后逗号
return result;
}
public void reset() {
length = 0;
}
public int locate(int paraValue) {
int tempPosition = -1;
for (int i = 0; i < length; i++) {
if (data[i] == paraValue) {
tempPosition = i;
break;
}
}
return tempPosition;
}
public boolean insert(int paraPosition, int paraValue) {
if (length == MAX_LENGTH) {
System.out.println("List full.");
return false;
}
if ((paraPosition < 0) || (paraPosition > length)) {
System.out.println("The position " + paraPosition + " is out of bounds.");
return false;
}
for (int i = length; i > paraPosition; i--) {
data[i] = data[i - 1];
}
data[paraPosition] = paraValue;
length++;
return true;
}
public boolean delete(int paraPosition) {
if ((paraPosition < 0) || (paraPosition >= length)) {
System.out.println("The position " + paraPosition + " is out of bounds.");
return false;
}
for (int i = paraPosition; i < length - 1; i++) {
data[i] = data[i + 1];
}
length--;
return true;
}
}
输出结果:
已经初始化列表:1, 3, 5, 61, 11, 6, 8, 9, 11, 23, 115
列表为:1, 3, 5, 61, 11, 6, 8, 9, 11, 23, 115
重置后列表:empty
已经初始化列表:1, 4, 6, 2, 1, 239, 8, 9, 11, 23, 115
不加"toArrayString()"输出的列表是:java11to20.D12_SequentialList2@4926097b
第4个位置的数是:1
第10个位置的数是:-1
插入数据6到2位置,列表为:1, 4, 6, 6, 2, 1, 239, 8, 9, 11, 23, 115
插入数据11到7位置,列表为:1, 4, 6, 6, 2, 1, 239, 11, 8, 9, 11, 23, 115
删除掉3位置的数据后,新列表数据为:1, 4, 6, 2, 1, 239, 11, 8, 9, 11, 23, 115
重置列表2后为:empty