所谓数组,是有序的元素序列。 [1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 [1] 这些无序排列的同类数据元素的集合称为数组。
package *;
/**
* @program: data-structure
* @description: 数组
* @author: ChenWenLong
* @create: 2019-09-10 09:19
**/
public class MyArray<T> {
private T[] MyArray;
private int length = 0;
/**
* 功能描述:
* 〈创建指定大小的数组〉
*
* @params : [size]
* @return :
* @author : cwl
* @date : 2019/9/10 9:21
*/
public MyArray(int size) {
MyArray = (T[]) new Object[size];
}
/**
* 功能描述:
* 〈默认大小的数组 大小为10〉
*
* @params : []
* @return :
* @author : cwl
* @date : 2019/9/10 9:21
*/
public MyArray() {
MyArray = (T[]) new Object[10];
}
/**
* 功能描述:
* 〈往数组中插入数据〉
*
* @params : [item]
* @return : void
* @author : cwl
* @date : 2019/9/10 9:22
*/
public void insert(T item) {
MyArray[length++] = item;
}
/**
* 功能描述:
* 〈确定该元素是否在数组当中〉
*
* @params : [item]
* @return : boolean
* @author : cwl
* @date : 2019/9/10 9:23
*/
public boolean isCantain(T item) {
for (int i = 0; i < length; i++) {
if (MyArray[i] == item) {
return true;
}
}
return false;
}
/**
* 功能描述:
* 〈找到对应元素的索引〉
*
* @params : [item]
* @return : int
* @author : cwl
* @date : 2019/9/10 9:25
*/
public int findIndex(T item) {
for (int i = 0; i < length; i++) {
if (MyArray[i] == item) {
return i;
}
}
return -1;
}
/**
* 功能描述:
* 〈删除某个元素〉
*
* @params : [item]
* @return : boolean
* @author : cwl
* @date : 2019/9/10 9:26
*/
public boolean delete(T item) {
int i = 0;
for (i = 0; i < length; i++) {
if (item == MyArray[i]) {
break;
}
}
if (i == length)
return false;
for (int j = i; j < length - 1; j++) {
MyArray[j] = MyArray[j + 1];
}
length--;
return true;
}
/**
* 功能描述:
* 〈打印数组〉
*
* @params : []
* @return : void
* @author : cwl
* @date : 2019/9/10 9:26
*/
public void show() {
System.out.print("[");
for (int i = 0; i < length; i++) {
if (i == length - 1)
System.out.print(MyArray[i]);
else {
System.out.print(MyArray[i] + ", ");
}
}
System.out.print("]\n");
}
}