java中数组的使用
1)什么是数组(Array):
数组是一种连续内存、大小固定的线性表,是一种数据结构,用来解决大量的存储问题。
2)为什么学习数组:
是为了解决大量数据存储问题
3)数组的特点:
1、大小固定
2、连续内存地址
3、存储的数据类型固定
4、数组是保存在堆内存中,因此数组是对象,不同类型的数组具有不同的类
4)如何定义数组:
// 第一种定义方式
数据类型[] 变量名称 = new 数据类型[size];
int[] arr = new int[5];
// 第二种定义方式
数据类型[] 变量名称 = new 数据类型[]{值1, 值2……};
int[] arr = new int[]{1, 2, 3, 4, 5};
// 第三种定义方式
数据类型[] 变量名称 = {值1, 值2……};
int[] arr = {1, 2, 3, 4, 5};
5)数组的使用
1、数组的长度(即元素的个数): 数组对象.length // 属性
2、访问数组元素:通过下标来访问 ==> 数组对象[下标]
注意:在编程中,99%情况下,下标都是从0开始
3、修改元素的数值: 数组对象[下标] = 新值
arr[0] = 1;
4、遍历数组:可以通过循环方法将数组的值遍历出来
//for循环方法
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//while方法
int i = 0;
while(i < arr.length) {
System.out.println(arr[i]);
i++;
}
foreach // 循环加强,是jdk5的新特性,是一种迭代容器操作
for (数据类型 临时变量: 可迭代对象) {
System.out.println(临时变量);
}
例:
for (int item: arr) {
System.out.println(item);
}
应用举例
请在控制台上输入一个数组,长度为10,类型是整数,求该数组的最大值、最小值,平局值
import java.util.Scanner;
/*
请在控制台上输入一个数组,长度为10,类型是整数,求该数组的最大值
最小值,平局值
*/
public class Demo09 {
public static void main(String[] args) {
int[] arr = new int[10];
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组的十个元素:");
for (int i = 0; i < arr.length; i++){
arr[i] = sc.nextInt();
}
maxAndMin(arr);
double avg = averrage(arr);
System.out.println("平均值为:" + avg);
}
public static void maxAndMin(int[] arr){
int max = arr[0], min = arr[0];
for (int i = 0; i < arr.length; i++){
if (max < arr[i]){
max = arr[i];
}
if (min > arr[i]){
min = arr[i];
}
}
System.out.println("最大值为:" + max + ",最小值为:" + min);
}
public static double averrage(int[] arr){
int sum = 0;
for (int i = 0; i < arr.length; i++){
sum += arr[i];
}
double avg = sum / arr.length;
return avg;
}
}
6)二维数组:
二维数组的定义:
// 第一种定义方式
数据类型[][] 变量名称 = new 数据类型[行数][列数];
int[][] arr = new int[5][8];
// 第二种定义方式
数据类型[][] 变量名称 = new 数据类型[][]{
{……},
{……},
{……}
};
int[][] arr = new int[][]{
{1, 2, 3, 4, 5},
{2, 3, 4, 5, 5},
{3, 4, 5, 6, 7},
{4, 5, 6, 7, 8}
};
// 第三种定义方式
数据类型[][] 变量名称 = {{……},
{……},
{……}
};
int[] arr = { {1, 2, 3, 4, 5},
{2, 3, 4, 5, 5},
{3, 4, 5, 6, 7},
{4, 5, 6, 7, 8}
};