- 写一个myToString方法:
toString方法是用来打印数组的,比如说:int[ ] array = {1,3,5,7,9},那么打印结果就是:[1,3,5,7,9];
public class ArrayDemo {
public static String myToString(int[] arr){
String ret ="[";
for (int i = 0; i <arr.length ; i++) {
ret += arr[i];
if (i != arr.length-1){
ret += ",";
}
}
return ret+"]";
}
public static void main(String[] args) {
int[] array = {1,2,4,7};
String str = myToString(array);
System.out.println(str);
}
}
2、数组的拷贝:
- (1)自己实现myCopy方法:
public class ArrayDemo {
public static int[] myCopy(int[] arr){
int[] ret = new int[arr.length];
for (int i = 0; i <arr.length ; i++) {
ret[i] = arr[i];
}
return ret;
}
public static void main(String[] args) {
int[] array = {2,4,6,8};
int[] temp = myCopy(array);
System.out.println(Arrays.toString(temp));
}
}
(2)System.arrayCopy方法:
public class ArrayDemo {
public static void main(String[] args) {
int[] array = {1,6,8,9,5};
int[] dest = new int[array.length];
//arrayCopy括号的参数分别为:
// (原始数组,原数组的开始拷贝位置,拷贝的目的地,目的数组起始下标,拷贝长度)
System.arraycopy(array,0,dest,0,array.length);
System.out.println(Arrays.toString(dest));
}
此方法非常迅速,因为这是一个native修饰的方法
(3)Arrays.copyOf方法:
public class ArrayDemo {
public static void main(String[] args) {
int[] array ={1,3,6,8};
//定义ret接收存放的数组
//copyOf的参数:(要拷贝的数组名,拷贝长度)
int[] ret = Arrays.copyOf(array,array.length);
System.out.println(Arrays.toString(ret));
}
(4)克隆:
public static void main(String[] args) {
int[] array = {1,6,8,9};
int[] ret = array.clone();
System.out.println(Arrays.toString(ret));
}
拷贝分为深拷贝和浅拷贝:
深拷贝:除了对象本身被复制外,对象包含的所有成员变量都会被复制,包括对象内部的引用;
浅拷贝:只复制一个对象;所以以上四种方法均为浅拷贝
3、寻找数组中的最大值:
思路:假设0号下标所对应的值为最大值,让剩下的数和0号下标所对应的值进行“打擂台”,直到数组遍历完毕;
public static int max(int[] arr){
int max = arr[0];
for (int i = 0; i <arr.length ; i++) {
if(arr[i] > max){
max = arr[i];
}
}
return max;
}
public static void main(String[] args) {
int[] array = {1,9,8,2,5,6};
int ret = max(array);
System.out.println(ret);
}
4、求数组元素的平均值
public static double averArray(int[] arr){
//定义sum 保存所有数字的和
int sum = 0;
for (int x:arr) {
sum += x;
}
return(double) sum/arr.length;
}
public static void main(String[] args) {
int[] array = {1,5,6,7,8,9};
double ret = averArray(array);
System.out.println(ret);
}
5、查找数组中指定的数字(顺序查找)
public static int find(int[] arr,int toFind){
for (int i = 0; i <arr.length ; i++) {
if(toFind == arr[i]){
//找到则返回下标
return i;
}
}
return -1;//表示为找到
}
public static void main(String[] args) {
int[] array = {1,4,6,7,8};
int ret = find(array,6);
System.out.println(ret);
}