今天继续研究数组~
续:数组的常见操作底层实现:
1.toString() 方法可把数组转换为字符串,并返回结果:
public class toString{
/**
* 把数组转换为字符串
* @param a 需要转换的数组
* @return 返回拼接好的字符串
*/
public static String toStringMothed(String[] a) {
String str = "[";
for (int i = 0; i < a.length; i++) {
if (i == a.length - 1) {
str += a[i] + "]";
} else {
str += a[i] + ",";
}
}
return str;
}
public static void main(String[] args) {
String[] a = { "12", "23", "12", "44", "12", "22" };
String b = toStringMothed(a);
System.out.print(b);
}
}
2.数组的倒序:
public class Reverse{
/**
* 实现数组倒序
* @param arr 需要倒序的数组
*/
public static int[] ArrayReverse(int[] arr) {
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
return arr;
}
public static void main(String[] args) {
int[] a = { 12, 33, 22, 11, 44, 33, 12 };
ArrayReverse(a);
for (int b : a) {
System.out.print(b + " ");
}
}
}
3.实现数组值的删除:
public class DeleteArray(){
/**
* 实现数组的删除操作
* @param arr
* @param value 要删除的数的索引值
*/
public static void deleteArrayMethod (int[] arr,int value){
for(int i = value;i < arr.length-1; i++){
arr[i] = arr[i+1];
}
arr[arr.length-1] = 0;
}
public static void main(String[] args){
int[] a = { 12, 33, 22, 11, 44, 33, 12 };
int value=2;
deleteArrayMethod(a,value);
for (int b : a) {
System.out.print(b + " ");
}
}
}
4.实现数值值的插入:
public class InsertArray{
/**
* 数组插入
* @param arr 被插入的数组
* @param value 要插入位置的索引
* @return 插入之后的数组
*/
public static int[] byArray(int[] arr ,int value){
//新建一个数组,来接受arr的首地址
int[] arr1=new int[arr.length+1];
//把数组中的值赋值到复杂到新的数组
for(int i=0;i<arr.length;i++){
arr1[i]=arr[i];
}
//把新的数组首地址赋给arr
arr=arr1;
//实现插入操作
//为什么是length-2???
//注意: 新数组的索引长度是length,获取[arr.length - 2, index]范围索引 值,方便获取所有需要挪动的元素
for( int i=arr.length-2;i>=value;i--){
arr[i+1]=arr[i];
}
arr[value]=value;
//返回数组给b
return arr;
}
public static void main(String[] args) {
int[] arr={34,23,12,34,22,11};
int value = 2;
int[] b=byArray(arr, value);
for(int c:b){
System.out.print(c+" ");
}
}
}