文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 小技巧
- 自动生成数组的遍历方式:数组名.fori
- 静态数组定义格式
- 动态数组定义格式
- 例题
- 1.求最值
- 遍历数组求和
- 交换数据
- 打乱数组中的数据
- Java内存分配
- 一、栈
- 二、堆
小技巧 自动生成数组的遍历方式:数组名.fori 静态数组定义格式
数据类型 [] 数组名 = {,,,,};
动态数组定义格式数据类型 [] 数组名 = new 数据类型[数组长度];
提示:以下是本篇文章正文内容,下面案例可供参考
例题 1.求最值
//扩展问题:
//1.根据求最大值的思路,自己改写下求最小智
//2.为什么max要记录为arr[0],默认值不能为0吗?数组中的值可能都为负数
//max的初始化值一定要是数组中的值。
//3.循环中开始条件一定是0吗?
//循环的开始条件如果为0,那么第一次循环的时候是自己跟自己比了一下,对结果没有任何影响,但是效率偏低
//为了提高效率,减少一次循环的次数, 循环开始条件可以写1.
int array[]={33,5,22,44,55},max=array[0];
for (int i = 1; i < array.length; i++) {
if (array[i]>max){
max=array[i];
}
}
System.out.println("该数组中的最大值为"+max);
遍历数组求和
Random r = new Random();
int arr[] = new int[10];
int sum=0,avg=0,count=0;
//求和
for (int i = 0; i < arr.length; i++) {
arr[i]=r.nextInt(100)+1;
sum+=arr[i];
}
//遍历数组
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//求平均数,比平均数小得值
avg=sum/arr.length;
for (int i = 0; i < arr.length; i++) {
if (arr[i]
count++;
}
}
System.out.println("所有数据的和:"+sum+"n平均数:"+avg+"n有"+count+"个数比平均值小");
交换数据
int arr[] = new int[5];
Scanner sc = new Scanner(System.in);
//获取数据
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入需要交换的数据:");
arr[i] = sc.nextInt();
}
//交换数据
for (int i = 0,j = arr.length-1; i
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//输出数据
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
打乱数组中的数据
int arr[] = new int[5];
Scanner sc = new Scanner(System.in);
//获取数据
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入需要交换的数据:");
arr[i] = sc.nextInt();
}
//打乱顺序
Random r = new Random();
for (int i =0;i
//生成一个随机索引
int radomIndex = r.nextInt(arr.length);
//把随即索引指向的元素和i指向的元素进行交换
int temp = arr[i];
arr[i] = arr[radomIndex];
arr[radomIndex] = temp;
}
//输出数据
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
Java内存分配
一、栈
main方法开始执行时会进栈,代码执行完成会出栈
二、堆new出来的的东西会在这块内存中开辟空间并产生地址



