数组
- 前言
- 1、数组的创建
- 1.1 、动态初始化创建数组
- 1.2 、静态初始化创建数组
- 2、数组的遍历
- 2.1、数组的遍历(1)
- 2.2、数组的遍历(2)
- 3、数组的练习
- 4、存储引用变量
- 5、多维数组
前言
数组的定义:在内存中一段连续的内存空间,存储相同类型的容器,定义后无法改变长度
语法: type name [] = new type [10] ;
type 数据类型(引用类型和基本类型);
name:标识符
[ ] :代表为一个数组
new关键字创建数组;
[10] :创建长度为10的数组
数组中元素的存储方式:
按照下标的方式存储(从0开始)到length-1结束(超出下标后会出现异常: ArrayIndexOutOfBoundsException )
案例可供参考
1、数组的创建
1.1 、动态初始化创建数组
创建了长度为10 ,类型为int类型的数组
int arr[] = new int[10];
//动态初始化
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
arr[5] = 6;
arr[6] = 7;
arr[7] = 8;
arr[8] = 9;
arr[9] = 10;
1.2 、静态初始化创建数组
在创建数组时使用花括号直接为其赋值,可以省略new int [ ] (利用JAVA的值推断机制)
//创建和初始化一起执行(静态初始化);
int arr3[] = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//可以省略new int
int arr2[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
2、数组的遍历
2.1、数组的遍历(1)
可以使用for循环进行遍历,也可使用Arrays工具类进行遍历
数组范围为:0 ~ length-1
代码如下:
//使用for循环遍历
int arr2[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int i = 0; i < arr2.length; i++) {
System.out.print(arr2[i] + ",");
}
2.2、数组的遍历(2)
使用foreach进行遍历,代码如下:
int arr2[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int num : arr2) {
System.out.print(num + ",");
}
3、数组的练习
求数组的和与平均值
int arr2[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
for (int i = 0; i < arr2.length; i++) {
sum += arr2[i];
}
int average = sum / (arr2.length );
System.out.println("数组arr2的平均值为:" + average + "总和为:" + sum);
生成随机数赋值并使用冒泡算法进行排序
//1.生成随机数并赋值
for (int i = 0; i < arr3.length; i++) {
arr3[i] = (int) (Math.random() * 100) + 1;
}
System.out.println("未排序前的数组为:" + Arrays.toString(arr3));
//2.使用冒泡算法对数组进行排序
/*
算法原理:
判断数组中前一个值是否大于后面的值,如果大于则进行位置交换,直到循环完成所有值进行判断
*/
for (int i = 0; i < arr3.length; i++) {
for (int j = 0; j < arr3.length - i - 1; j++) {
if (arr3[j] > arr3[j + 1]) {
//保存了数组中j+1的值
int temp = arr3[j + 1];
//位置交换
arr3[j + 1] = arr3[j];
arr3[j] = temp;
}
}
}
//遍历
System.out.println("排序后的数组为:" + Arrays.toString(arr3));
4、存储引用变量
代码如下:
class Person{
int age;
String name;
Person(int age,String name){
this.age=age;
this.name=name;
}
public void showInfo(){
System.out.println("姓名为:"+name+",年龄为:"+age);
}
public static void main(String [] args){
Person p1 = new Person(18,"张三");
Person p2 = new Person(19,"李四");
Person p3 = new Person(20,"王五");
// 引用对象的地址存入数组中
Person [] people = new Person[3];
people[0]=p1;
people[1]=p2;
people[2]=p3;
//遍历
for (int i = 0 ; i < people.length ; i++){
people[i].showInfo();
}
}
}
5、多维数组
- 多维数组:相当于数组的嵌套
语法
int [][] arrs = new int [4][5]; 相当于创建了一个4行5列的数组;
int [][] arrs2 = new int [4][];相当于创建了一个4行的数组,没有声明每个数组的长度(长度可以不相同)
代码如下:
//创建4行5列的数组
int[][] arrs = new int[4][5];
//赋值
for (int i = 0 ,num=10; i < arrs.length ; i++){
for (int j = 0 ; j < arrs[i].length; j++){
arrs[i][j]=num;
num++;
}
}
//遍历
for (int i = 0 ; i < arrs.length ; i++){
for (int j = 0; j < arrs[i].length ; j++){
System.out.print(arrs[i][j]+" ");
}
System.out.println();
}
/*
输出结果为下
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24
25 26 27 28 29
*/
本文结束!感谢您的光临!!!,
希望我们共同进步~共同成长 。
创作不易,来个三连可好!!