1.数组的初始化
1.1 动态初始化
数组的定义: 数据类型 数组名[]=new 数据类型[大小 ]
int a[]=new int[5];//创建了一个数组,名字a,存放5个int
int[5]里的数据是从0开始 0 1 2 3 4 这五个下标。 若引用第三个数则是a[2]
声明数组:数据类型 数组名[]; 或者 数据类型[] 数组名;
int a[]; 或者 int[] a; 先声明一个数组但是不分配空间,使用时再分配
创建数组: 数组名=new 数据类型[大小];
int a[ ]=new int[10];
1.2例题:定义一个数组,储存五个数字{33,5,22,44,55},比较出最大的一个。
public class Java_1 {
public static void main(String[] args) {
int arr[]={33,5,22,44,55};
int max=arr[0];
for(int i=0;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
System.out.println(max);
}
}
1.3练习:生成10个1~100之间的随机数存入数组。a.求出所有数据的和 b.求出所有数据的平均数 c.统计有多少个数据比平均值小。
随机数公式:Random rc=new Radom(); int number=rc.nextInt;
import java.util.Random;
public class Java_1 {
public static void main(String[] args) {
int arr[] = new int[10];
Random rc = new Random();
for (int i = 0; i < arr.length; i++) {
int number = rc.nextInt(100) + 1;//利用循环生成10个随机数
arr[i] = number; 将随机数赋值到数组中
System.out.println(arr[i]);
}
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum = sum + arr[i];
}
System.out.println("和" + sum);
int avg = sum / arr.length;
System.out.println("平均数为" + avg);
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] < avg) {
System.out.println(arr[i]);
count++;
}
}
System.out.println("有" + count + "个比平均数小");
}
}
1.4例题:定义两个变量,并交换变量记录的值。
import java.util.Random;
public class Java_1 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int temp = a;//暂存值
a = b;
b = temp;
System.out.println(a);
System.out.println(b);
}
}
1.5例题:交换数组中的数据,交换前1,2,3,4,5;交换后5,4,3,2,1。
import java.util.Random;
public class Java_1 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
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.println(arr[i]);
}
}
}
1.6例题:随机打乱数组
import java.util.Random;
public class Java_1 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
Random r=new Random();
for (int i = 0; i < arr.length; i++) {
int temp=arr[i];
int randomIndex=r.nextInt(arr.length);
arr[i]=arr[randomIndex];
arr[randomIndex]=temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
2.静态初始化
数据类型 数组名[]={元素1,元素2,........}
int a[]={1,2,3,4,5,6,7,8} 相当于int a[]=new int[9];其中a[0]=1,a[5]=6.
2.3l练习:定义一个数组,储存1,2,3,4,5;遍历数组得到每一个元素,并求和。
public class Java_1 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
sum = sum + arr[i];
}
System.out.println(sum);
}
}
2.4例题:定义一个数组,储存1~10;遍历数组得到每一个元素,统计里面有多少个能被3整除的数字。
public class Java_1 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 3 == 0) {
System.out.println(arr[i]);
sum = sum + 1;
}
}
System.out.println("有" + sum + "个");
}
}
2.5例题:定义一个数组,储存1~10;如果是奇数,则扩大两倍;如果是偶数则变成二分之一
public class Java_1 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 2 == 0) {
arr[i] = arr[i] / 2;
System.out.println("是偶数变成了" + arr[i]);
} else {
arr[i] = arr[i] * 2;
System.out.println("是奇数变成了" + arr[i]);
}
}
}
}
2.数组使用的注意事项
- 数组创建后,如果没有赋值,有默认值:int 0,short 0,byte 0,long 0,float 0.0,double 0.0,char \u0000,boolean false,String null ;
- 数组的下标从0开始的
- 数组属于引用类型,数组型 数据 是对象(object)。