数组的遍历和长度属性
package com.example.day05;
import java.util.Arrays;
/**
* @author Eric Lee
* @date 2020/9/23 11:04
*/
public class ArrayDemo2 {
public static void main(String[] args) {
int[] arr = new int[5];
arr[0] = 1;
arr[1] = 3;
arr[2] = 5;
System.out.println(Arrays.toString(arr));
System.out.println(arr); // 直接输出数组返回的是他的地址值[I@1b6d3586
System.out.println("++++++++++++++++++++++|");
// 数组遍历 一个一个的取出
// System.out.println(arr[0]);
// System.out.println(arr[1]);
// System.out.println(arr[2]);
// 数组的length属性
System.out.println("length属性"+arr.length);
// for (int i = 0; i <arr.length ; i++) {
// System.out.println("i= "+i);
// System.out.println(arr[i]);
// }
for (int i = 0; i <arr.length ; i++) {
System.out.println(arr[i]);
}
}
}
数组的内存图
两个数组的内存图
两个变量指向一个数组
数组越界异常
- 下标超过了数组length-1
- 数组中根本没有元素
public class ArrayDemo4 {
public static void main(String[] args) {
int[] arr = {11, 22, 33, 44};
// System.out.println(arr[4]); // ArrayIndexOutOfBoundsException
int[] arr2 = {}; // .ArrayIndexOutOfBoundsException
System.out.println(arr2[0]);
}
}
数组的空指针异常
public class ArrayDemo5 {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
arr = null; // 空值 不保存数组的地址
System.out.println(arr[0]);// NullPointerException
}
}
获取数组中最大的元素
public class ArrayDemo6 {
public static void main(String[] args) {
int[] arr = new int[]{2, 333233, 4444, 44433, 432};
// 定义一个max变量,存储最大值
int max = arr[0];
//遍历数组
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max){
// 更新max的值
max = arr[i];
}
}
System.out.println("最大值是"+max);
}
}
数组的反转
package com.example.day05;
import java.util.Arrays;
/**
* @author Eric Lee
* @date 2020/9/23 12:15
*/
public class ArrayDemo7 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7}; // 54321
//
// for (初始表达式; 布尔表达式 ; 步进表达式) {
//
// }
// for (int i= 0, j=100 ; i < 100; i++, j++){
//
// }
for (int min =0, max=arr.length-1; min <= max; min++,max-- ){
// 交换min和max索引对应 的值
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
System.out.println(Arrays.toString(arr));
}
}
数组作为方法的参数
package com.example.day05;
/**
* @author Eric Lee
* @date 2020/9/23 12:38
*/
public class ArrayDemo8 {
// 数组作为方法的参数
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6};
getArraySum(arr);
}
// 数组作为方法的参数 String name int[]
public static void getArraySum(int[] arr){
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
System.out.println(sum);
}
public static void getSum(int x, int y){
System.out.println(x+y);
}
}
数组作为方法的返回值
package com.example.day05;
import java.util.Arrays;
/**
* @author Eric Lee
* @date 2020/9/23 12:49
*/
public class ArrayDemo9 {
public static void main(String[] args) {
int sum = getSum(10, 23, 22);
System.out.println(sum);
int[] arr = {1, 3, 5, 7, 9};
int[] arrayPower = ArrayPower(arr);
System.out.println(Arrays.toString(arrayPower));
}
public static int[] ArrayPower(int[] arr){
int[] powerArr = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
int val = arr[i]*arr[i];
powerArr[i] = val;
}
return powerArr;
}
public static int getSum(int x , int y, int z){
return x+y+z;
}
}
网友评论