一、什么是数组(Array):
数组是一种连续内存、大小固定的线性表,是一种数据结构,用来解决大量的存储问题。
二、为什么学习数组:
解决大量数据存储问题
容器(collection):
容器一般是一种数据结构
是用来解决多个数据保存和计算的容器
线性表:
数组
栈
队列
链表
哈希表:
树:
图:
数组的特点:
1、大小固定
2、连续内存地址
3、存储的数据类型固定
4、数组是保存在堆内存中!!!因此数组是对象!!!
三、Java中如何定义数组
// 第一种定义方式
数据类型[] 变量名称 = new 数据类型[size];
// 第二种定义方式
数据类型[] 变量名称 = new 数据类型[]{值1, 值2……};
// 第三种定义方式
数据类型[] 变量名称 = {值1, 值2……};
//第一种方法
jshell> int[] a = new int[6]
a ==> int[6] { 0, 0, 0, 0, 0, 0 }//第二种方法
jshell> int[] b = new int[]{1,2,3}
b ==> int[3] { 1, 2, 3 }jshell> int[] b = new int[3]{1,2,3}
| 错误:
| 同时使用维表达式和初始化创建数组是非法的
| int[] b = new int[3]{1,2,3};
| ^---------------^//第三种方法
jshell> int[] c = {1, 2, 3}
c ==> int[3] { 1, 2, 3 }
数组的长度(元素的个数):
数组对象.length // 属性
jshell> b
b ==> int[3] { 1, 2, 3 }jshell> b.length
$305 ==> 3
四、访问数组元素(element):
通过下标来访问,注意:在编程中,99%情况下,下标都是从0开始
数组对象[下标] // 通过下标来访问元素的个数
jshell> b
b ==> int[3] { 1, 2, 3 }jshell> b[0]
$302 ==> 1
五、修改元素的数值:
数组对象[下标] = 新值
jshell> b[1] = 6
$303 ==> 6jshell> b
b ==> int[3] { 1, 6, 3 }
六、遍历数组:
制作一个索引
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
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;
class Test18 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入10个整数:");
int[] arr = new int[10];
for(int i = 0; i < 10; i++){
arr[i] = input.nextInt();
}
int[] result = maxNum(arr);
System.out.println("最大值是:" + result[0]);
System.out.println("最小值是:" + result[1]);
double average = average(arr);
System.out.println("平均值是:" + average);
}
public static int[] maxNum(int[] arr){
int max = arr[0];
int min = arr[0];
for(int i = 1; i < arr.length; i++){
if(arr[i] > max){
max = arr[i];
}
if(arr[i] < min){
min = arr[i];
}
}
int[] result = {max, min};
return result;
}
public static double average(int[] arr){
int sum = 0;
double average = 0;
for(int i = 0; i < arr.length; i++){
sum += arr[i];
}
average = sum / 10;
return average;
}
}