数组概述:
1.数组的定义
数组是一个容器,用来存储一批同种类型的数据。
静态初始化数组,数组的访问
数组的存储原理:
数组的访问:
数组的遍历:
或者用:
public static void main (String[] args) {
int[] arrays = {1,2,3,4,5};
//arrays代表的是一个数组,nt array代表的是每个数组里面的每一个元素,但是取不到下标。
for (int array: arrays){
System.out.println(array);
}
}
动态初始化数组:
案例:
初始化默认规则:
静态动态区别:
案例:
代码:
package javaa.array;
import java.util.Scanner;
public class arraydemo1 {
public static void main(String[] args) {
double Averagescore=0.0;
double add=0.0;
double[] array= new double[8];
for(int i=0;i<8;i++)
{
Scanner scanner=new Scanner(System.in);
System.out.println("第" + i + "位评委打分:");
double score = scanner.nextDouble();
add=add+score;
}
Averagescore=add/8;
System.out.println("平均分为" + Averagescore);
}
}
JAVA内存分布介绍:
数组在计算机中执行原理:
问题总结:
多个变量指向同一个数组时:
数组案例:
案例一:
冒泡排序,升序
package javaa.array;
import java.util.Arrays;
public class array {
public static void main(String[] args) {
int[] a ={4,5,22,4,0,6,2,8};
//调用完我们自己写的排序方法以后返回一个排序后的数组
int[] test= test(a);
System.out.println(Arrays.toString(test));
}
/*
冒泡排序:
1.比较数组中两个相邻的元素,如果第一个比第二个大就交换这两个数之间的顺序。
2.每一次比较都会产生一个最大的数或者是最小的数。
3.下一轮则可以少一轮排序。
4.一次循环,直到结束。
*/
public static int[] test(int[] arrays){
int temp = 0;
//外层循环,判断我们要走多少次
for (int i = 0; i <arrays.length-1 ; i++) {
//通过标识为减少不必要的循环
boolean flag = false;
//内层循环,比较数组中两个相邻的元素,如果第一个比第二个大就交换这两个数之间的顺序。
for (int j = 0; j < arrays.length-1; j++) {
if (arrays[j+1]<arrays[j]){
//需要建立临时变量,进行三变量倒手
temp = arrays[j];
arrays[j]= arrays[j+1];
arrays[j+1]=temp;
flag = true;
}
}
if (flag=false){
break;
}
}
return arrays;
}
}
案例二:
package javaa.array;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class arraydemo2 {
public static void main(String[] args) {
int[] arr=new int[5];
for(int i=0;i<arr.length;i++)
{
System.out.print("请输入第"+ i + "位的排名:\n");
Scanner scanner=new Scanner(System.in);
arr[i]=scanner.nextInt();
}
Random r =new Random();
for (int i=0;i<arr.length;i++)
{
int c = r.nextInt(arr.length);
int d = arr[i];
arr[i]=arr[c];
arr[c]=d;
}
System.out.println(Arrays.toString(arr));
}
}