package datastrucates.arrays.noorder;
/**
* 操作无序数组 无重复
*
* @author wuxin
*
*/
public class ArraysOperationNoOrder {
private int[] datas = null;
private int currentIndex = 0;
public ArraysOperationNoOrder(int length) {
datas=new int[length];
}
/**
* 给数组添加元素并返回添加的元素所在位置
*
* @param data
* @return
*/
public int insert(int data) {
datas[currentIndex] = data;
currentIndex++;
return currentIndex - 1;
}
/**
* 按照元素查找并返回改元素索引
*
* @param data
* @return
*/
public int searchData(int data) {
int index = -1;
for (int i = 0; i < datas.length; i++) {
if (datas[i] == data) {
index = i;
break;
}
}
return index;
}
/**
* 按照元素的值移除元素
*
* @param data
* @return
*/
public int remove(int data) {
// 1,查找改元素所在位置
int index = searchData(data);
// 2.按照所在位置移除元素
for (int i = index; i < currentIndex; i++) {
datas[i] = datas[i + 1];
}
currentIndex--;
return index;
}
public int selectOne(int data) {
return searchData(data);
}
public void printDatas() {
System.out.println("+++++++++++++++++++++++");
for(int data:datas) {
System.out.println(data);
}
}
public static void main(String[] args) {
ArraysOperationNoOrder arrays=new ArraysOperationNoOrder(10);
arrays.insert(2);
arrays.insert(3);
arrays.insert(6);
arrays.insert(1);
arrays.printDatas();
arrays.remove(1);
arrays.printDatas();
int data=arrays.selectOne(3);
System.out.println("returnIndex--->"+data);
}
}