数组执行原理
多个变量指向同一个数组
package com.ithema.loop;
public class demo251 {
public static void main(String[] args) {
int[] a = new int[12];
int[] b = a;
System.out.println(a);
System.out.println(b);
a[1] = 3;
System.out.println(b[1]);
}
}
输出:
[I@1b6d3586
[I@1b6d3586
3
空指针异常
null不指向任何数据对象
案例
数组找最值
给定一组数,找出最大值
package com.ithema.loop;
public class demo251 {
public static void main(String[] args) {
int[] list = new int[] {
15, 9000, 10000, 2000, 9500, -5, 1000000};
int max = list[0];
for (int j : list){
if (j > max ){
max = j;
}
}
System.out.println(max);
}
}
输出:
1000000
数组反转
某个数组有5
个数据:1,2,3,4,5
,请将这个数组的数据进行反转
[10,20,30,40,50]
反转后 [50,40,30,20,10]
import java.util.Arrays;
public class demo251 {
public static void main(String[] args) {
int[] list = new int[] {
10, 20, 30, 40, 50};
int lenag = list.length;
int[] listre = new int[lenag];
for (int i = 0; i < lenag; i++) {
int index = lenag - 1 - i;
listre[i] = list[index];
}
System.out.println(Arrays.toString(listre));
}
}
或者使用第i个数字和倒数第i个数字交换的方式,更为简单。
随机排名
package com.ithema.loop;
import javax.swing.*;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
import static java.lang.String.format;
public class demo251 {
public static void main(String[] args) {
int[] gonghao = new int[5];
int lenth = gonghao.length;
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < lenth; i++) {
String str = format("请输入第%s个工号",i);
System.out.println(str);
int data = scanner.nextInt();
gonghao[i] = data;
}
for (int j = 0 ; j < lenth; j++){
Random random = new Random();
int r = random.nextInt(lenth);
int tem = gonghao[r];
gonghao[r] = gonghao[j];
gonghao[j] = tem;
}
System.out.println(Arrays.toString(gonghao));
}
}
debug工具
Debug工具—IDEA自带的断点调试工具,可以控制代码从断点开始一行一行的执行,然后详细观看程序执行的情况。
断点调试