提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
小技巧
自动生成数组的遍历方式:数组名.fori
静态数组定义格式
数据类型 [] 数组名 = {,,,,};
动态数组定义格式
数据类型 [] 数组名 = new 数据类型[数组长度];
提示:以下是本篇文章正文内容,下面案例可供参考
例题
1.求最值
/*
定义一个数组,存储33,5,22,44,55
遍历数组得到每一个元素, 求出数组中的最大值
*/
//扩展问题:
//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);
遍历数组求和
/*
需求:
生成10个1~100之间的随机数存入数组。
1)求出所有数据的和
2)求所有数据的平均数
3)统计有多少个数据比平均值小
*/
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]<avg){
count++;
}
}
System.out.println("所有数据的和:"+sum+"\n平均数:"+avg+"\n有"+count+"个数比平均值小");
交换数据
/*
需求:
需求:定义一个数组,存入1,2,3,4,5。 按照要求交换索引对应的元素。
交换前: 1,2,3,4,5
交换后: 5,2,3,4,1
*/
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<j;i++,j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//输出数据
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
打乱数组中的数据
/*
需求:
需求:定义一个数组,存入1,2,3,4,5
要求打乱数组中所有数据的顺序
*/
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<arr.length;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出来的的东西会在这块内存中开辟空间并产生地址